I. ARQUITECTURA TCP/IP 1. Protocolo IPv6 (ICMPv6) 2. IP móvil en

Anuncio
ARQUITECTURA DE REDES DE COMUNICACIONES
ÍNDICE TEMÁTICO
I. ARQUITECTURA TCP/IP
1. Protocolo IPv6 (ICMPv6)
2. IP móvil en IPv4 e IPv6
3. Transición de IPv4 a IPv6
4. Encaminamiento dinámico de unidifusión y MPLS
5. Multidifusión IP
6. Encaminamiento dinámico de multidifusión
7. TCP: Servicios opcionales (confirmación selectiva o SACK)
y control de la congestión
UDP: Servicio no orientado a conexión para transmisiones multimedia
en tiempo real
8. Parámetros de calidad de servicio, modelos de calidad de servicio
y multimedia en tiempo real (RTP y VoIP)
II. SERVICIOS Y TECNOLOGÍAS DE SEGURIDAD EN INTERNET
1. Amenazas, servicios y mecanismos de seguridad
2. Seguridad Web y correo electrónico
3. Protección de las comunicaciones: Intranets y Redes privadas virtuales
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
1
Arquitectura de Redes de Comunicaciones
Documentación: Tema I, Capítulo 7
http://pegaso.ls.fi.upm.es/arquitectura_redes/index2.html
material
TRANSPARENCIAS
http://halley.ls.fi.upm.es/~jyaguez/libros.html
PROBLEMAS
http://halley.ls.fi.upm.es/~jyaguez/examenes.html
•TCP/IP Tutorial and Technical Overview, Lydia Parziale, David T. Britt ,…
8ª edición (Diciembre 2006).
Redbooks: http://www.redbooks.ibm.com/portals/solutions
Libro descargable desde Internet)
.Los RFCs que se indiquen
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
2
LOS RFC de TCP
http://www.rfc-editor.org/rfcsearch.html
 RFC-793 Transmission Control Protocol, Darpa Internet
Program Protocol Specification, septiembre 1981
 RFC-1323 TCP Extensions for High Performance, 1992
Aumento de la ventana de recepción hasta 32 bits
 RFC-2018 TCP Selective Acknowledgment Option, 1996
Confirmación selectiva
 RFC-5681 TCP Congestion Control, 1999
Algoritmos para control de congestión:
• Comienzo lento (Slow Start)
• Prevención de congestión (Congestion Avoidance)
• Retransmisión rápida (Fast Retransmit)
• Recuperación rápida (Fast Recovery)
 RCF-3782 The New Reno Modification to TCP's Fast Recovery
Algorithm, 1999
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
3
NIVELES SUPERIORES TCP/IP
NIVELES
SUPERIORES
NIVELES
SUPERIORES
SISTEMA FINAL
EXTREMO A EXTREMO
SISTEMA FINAL
APLICACIÓN
APLICACIÓN
EXTREMO A EXTREMO
TCP/UDP
TCP/UDP
IP
INTERFAZ DE
RED
INTERFAZ
DE RED
INTERFAZ
DE RED
INTERFAZ
DE RED
INTERFAZ
DE RED
ROUTER
(SISTEMA INTERMEDIO)
INTERFAZ DE
RED
WiFi
Ethernet
NIVELES
INFERIORES
IP
IP
IP
ROUTER
(SISTEMA INTERMEDIO)
NIVELES
INFERIORES
Las unidades de datos del protocolo TCP (“PDUs TCP”) se denominan segmentos TCP
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
4
NIVEL DE TRANSPORTE
PROTOCOLO TCP (Transmission Control Protocol)
SERVICIOS OPCIONALES (SACK)
Y CONTROL DE LA CONGESTIÓN
CONTROLES
SISTEMA FINAL
EXTREMO A EXTREMO
APLICACIÓN
SISTEMA FINAL
APLICACIÓN
ORIENTADO A LA CONEXIÓN
(control de errores y flujo) y CONGESTIÓN
TCP
ROUTER
IP
ROUTER
…
IP
INTERFAZ DE
RED
INTERFAZ
DE RED
Ethernet
TCP
INTERFAZ
DE RED
INTERFAZ
DE RED
…
IP
IP
INTERFAZ
DE RED
INTERFAZ DE
RED
Ethernet
TCP aparte ofrece como servicios básicos: Un servicio de flujo de octetos,
orientado a la conexión, multiplexado y dúplex
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
5
Control de Errores TCP
RECORDATORIO
 Equivalente al control de errores en el nivel de enlace
 Con la diferencia de que TCP CONTROLA OCTETOS DE
DATOS PERDIDOS, DESORDENADOS Y DUPLICADOS y
NO las unidades de datos o segmentos TCP que transportan
dichos octetos de datos
 Los segmentos de datos no se numeran sólo los octetos de
datos
 CADA OCTETO DE DATOS DISPONE DE UN NÚMERO
DE SECUENCIA
 A su vez, el CAMPO DE DATOS o los OCTETOS DE DATOS
de cada segmento de información tiene asociado
 Una confirmación
 Un temporizador de espera de confirmación
• Al vencimiento sin confirmación se produce una
retransmisión
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
6
Filosofía Operativa TCP
RECORDATORIO
 Todo proceso de aplicación montado sobre TCP
se despreocupa de delimitar sus mensajes
 TCP trata los mensajes , pasados por el proceso
de aplicación, como un flujo o “chorro” de
octetos (byte-stream) que recoge, numera,
almacena y agrupa en segmentos en función de
la MTU de salida
 Por esta razón, TCP no numera los segmentos
sino los octetos de datos transmitidos
 A su vez, las confirmaciones, por parte de la
entidad receptora TCP, reconocen octetos de
datos correctamente recibidos y no segmentos
recibidos
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
7
Control de Flujo TCP
RECORDATORIO
 Equivalente al control de flujo en el nivel de enlace
MECANISMO DE VENTANA DESLIZANTE
• WT y WR
Con la diferencia de que TCP SÓLO DISPONE DE
UN
• BUFFER DE TRANSMISIÓN en donde
almacena una copia de los octetos de datos
enviados y no confirmados
• BUFFER DE RECEPCIÓN en donde almacena
los octetos de datos que, en un momento dado, el
receptor puede aceptar en función de su número
de secuencia
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
8
1 2 3 4 5 6 7 8 910 11 12 1314 1516 17 18
Numeración TCP de los octetos del mensaje
Miguel hola un saludo
UN EJEMPLO DEL CONTROL DE ERRORES TCP
(EMISOR)
Javier
A
DATOS DE USUARIO
hola
un
Miguel hola
un
saludo
Segmenta y numera los octetos
13 saludo
TCP
11
hola
Protocolo
de Aplicación “P”
(CABECERA)
un
IP
A31
RED de Acceso
A21
un
R31
R21 B32 13
R21 B32 11
un
R21 B32 1 Miguel hola
RED 1
© Fco. Javier Yágüez García
hola
un
IP
Destino
saludo
un
TCP
B32 1 Miguel hola
un
IP
B32
B32 13 saludo
Destino
RED de Acceso
R22
R21
“P”
servidor
13 saludo
B32 11
R32
saludo
1 Miguel hola
ok!
R
(RECEPTOR)
Miguel
B
11
B32 1 Miguel hola
Destino
saludo
(CABECERA)
Protocolo
de Transporte TCP
B32 13 saludo
B32 11
un
Usuario
de Destino
Miguel
1 Miguel hola
Destino
DATOS DE USUARIO
DATOS DE USUARIO
saludo
Usuario
de Destino
“P”
cliente
CABECERA
APLICACIÓN
B22 B32 1 Miguel hola
B22 B32 11
un
RED de Acceso
B22
B22 B32 13 saludo
RED 2
ARQUITECTURA Y SERVICIOS DE INTERNET
9
Protocolo TCP (Transmission Control Protocol): Servicios

TRANSFERENCIAS DE FLUJO DE OCTETOS (BYTE-STREAM): Entidad TCP
emisora recoge, numera, almacena y agrupa los octetos de datos o carga útil (recibidos del
proceso de aplicación) en segmentos, calculando el MSS (Maximum Segment Size) para que
los datagramas IP se correspondan con la MTU de la red de acceso
 ORIENTADO A LA CONEXIÓN (conexión pareja de sockets)
 Control de errores (Fiabilidad):
 Lógicos (octetos de datos perdidos, desordenados y duplicados): temporizadores
(campo de datos de cada segmento de información tiene asociado un temporizador y
al vencimiento sin confirmación se produce una retransmisión), números de
secuencia (octeto de datos =número de secuencia), confirmaciones (campo de datos
de cada segmento de información tiene asociado una confirmación)
 Físicos (detección: suma de comprobación y corrección: temporizadores y
retransmisión)


 Control de flujo: Mecanismo de ventana deslizante ejercido por el receptor sobre
el emisor para evitar que éste desborde el buffer del receptor
MULTIPLEXADO o simultáneo a través de los números de puerto
TRANSFERENCIAS SIMÚLTÁNEAS EN LOS DOS SENTIDOS (full-dúplex)
 CONTROL DE LA CONGESTIÓN (en Internet): Mecanismo de ventana
ejercido por el emisor sobre sí mismo para evitar agravar una CONGESTIÓN
en INTERNET o seguir desbordando el buffer de recepción IP de un router
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
10
Tres Tipos de Ventanas en TCP
 Diferenciar las ventanas del control de flujo
TCP y la ventana del control de la congestión
TCP
 Toda entidad TCP dispone de una WT
(ventana de transmisión), WR (ventana de
recepción) y de una WC (ventana de
congestión)
Toda entidad TCP emisora dispone de una
WT (ventana de transmisión) y de una WC
(ventana de congestión)
Toda entidad TCP receptora dispone de
una WR (ventana de recepción)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
11
El Control de Flujo y la Ventana de Recepción
RECORDATORIO
 El control de flujo lo ejerce la entidad TCP receptora a través
de su WR para evitar que la entidad TCP emisora desborde el
buffer de dicha entidad TCP receptora
 WR garantiza que no se inunde al receptor, ejerciendo un
control de flujo sobre el emisor
 WR controla la numeración de los octetos de datos que puede
enviar, en un momento dado, el emisor en función del
número de octetos libres que, en un momento dado, se pueden
almacenar en el buffer de recepción de la entidad TCP
receptora
 WR se corresponde con una lista de números de secuencia de
octetos de datos que, en un momento dado, el receptor puede
aceptar y almacenar en su buffer de recepción
 WT va variando puntualmente en fase de transferencia de
datos en función de la WR del otro extremo
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
12





El Control de la Congestión y la Ventana de Congestión
El control de la congestión lo ejerce la entidad TCP emisora
sobre sí misma a través de su WC para evitar que dicha
entidad TCP emisora siga desbordando el buffer de una
entidad intermedia IP en un router de Internet
El control de congestión permite que la entidad TCP emisora
baje el ritmo de transmisión cuando ocurre un desbordamiento
en el buffer de un router
WC garantiza que no se siga inundando a un router,
ejerciendo un control de transmisión en el emisor
WC indica el número de segmentos que puede enviar, en un
momento dado, en función de la congestión en Internet y se
calcula mediante un mecanismo o ALGORITMO
ADAPTATIVO a partir de una retransmisión (por “timeout”
o pérdida de un segmento de datos y/o confirmación)
WC actúa simultáneamente y en paralelo a WR
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
13
La Transferencia de Datos y la Ventana de Transmisión
 WT controla la numeración de los octetos de datos (enviados y no
confirmados) almacenados en el buffer de transmisión
 WT se corresponde con una lista de números de secuencia de
octetos de datos que, en un momento dado, el emisor ha enviado sin
haber recibido confirmación
 A medida que van llegando las confirmaciones, se DESACTIVAN los
temporizadores asociados y se va LIBERANDO espacio en el buffer de
transmisión para dejar sitio a nuevas copias de otros octetos de datos que se desean
transmitir
 El tamaño de WT viene determinado por la capacidad del
receptor y la capacidad de la red
 Espacio disponible en el buffer de recepción de la entidad TCP receptora
 Espacio disponible en los buffers de recepción IP de los routers intermedios entre el
origen y el destino
 WT = min (WR , WC )
 En cada momento, el emisor tomará en consideración la más pequeña de
las dos ventanas para asegurarse de que no desborda al receptor ni
provoca, o contribuye a agravar, una situación de congestión en la red
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
14
VENTANA DE RECEPCIÓN: Control de Flujo sin Congestión en la Red
Mientras no haya un congestión en la red, se lleva a cabo un control de flujo ejercido por WR
Control de flujo: Mecanismo de ventana deslizante ejercido por el receptor sobre el emisor
A
B
Aplicación
Aplicación
TCP
TCP
Envío
Recepción
Envío
Recepción
Buffer
Buffer
Buffer
Buffer
de Transmisión
de Recepción
de Transmisión
de Recepción
(Ventana de Transmisión)
(Ventana de Recepción)
(Ventana de Transmisión)
(Ventana de Recepción)
IP
IP
Control de los números
Ventana deslizante de recepción:
del buffer
BUFFER DE RECEPCIÓN
Números de secuencia de los octetos de
datos que en un momento
Nº SEC = n
Nº SEC = n+1 Nº SEC = n+2
Octetos de datos procedentes
dado el receptor puede aceptar y almacenar
de la entidad TCP emisora
se recogen,y almacenan
en el buffer de recepción
Primer octeto
Segundo octeto
Tercer octeto
...
Cuando se llena el buffer, se entregan al proceso de aplicación
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
15
VENTANA DE TRANSMISIÓN: Control de Flujo Sin Congestión en la Red
Mientras no haya un congestión en la red, la WT se ajusta en función de WR
A
B
Aplicación
Aplicación
TCP
TCP
Envío
Recepción
Envío
Recepción
Buffer
Buffer
Buffer
Buffer
de Transmisión
de Recepción
de Transmisión
de Recepción
(Ventana de Transmisión)
(Ventana de Recepción)
(Ventana de Transmisión)
(Ventana de Recepción)
IP
IP
Control de los números
del buffer
BUFFER DE TRANSMISIÓN
Octetos de datos procedentes
del proceso de aplicación
se recogen, numeran,
almacenan y agrupan
en el buffer de transmisión
Nº SEC = n
Primer octeto
Nº SEC = n+1 Nº SEC = n+2
Segundo octeto
Tercer octeto
Ventana deslizante de transmisión:
Números de secuencia de los octetos de
datos que en un momento
dado el emisor ha enviado sin haber
recibido confirmación
...
Cuando se llena el buffer, se van tomando trozos agrupándolos por segmentos y añadiéndoles una cabecera
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
16
PROTOCOLO TCP
Formato de un Segmento TCP
MSS = MTU - cabecera IP - cabecera TCP
CABECERA
DATOS (Variable)
20 octetos
sin opciones
Maximum Segment Size (MSS) = Carga Útil =
Se calcula un MSS de tal forma
= SDU del Nivel de Aplicación = 1024 octetos (típico MSS)
que los datagramas IP
resultantes se correspondan
con la MTU de la red de acceso
BUFFER DE TRANSMISIÓN
Octetos de datos procedentes
del proceso de aplicación
se recogen, numeran,
y almacenan
en el buffer de transmisión
Nº SEC = n
Primer octeto
Nº SEC = n+1 Nº SEC = n+2
Segundo octeto
Tercer octeto
...
Cuando se llena el buffer, se van tomando trozos agrupándolos por segmentos y añadiéndoles una cabecera
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
17
UN EJEMPLO SENCILLO DE VENTANA DESLIZANTE DE
TRANSMISIÓN Y RECEPCIÓN (2 octetos) SIN CONTROL
DE LA CONGESTIÓN (WT depende sólo de WR)
INICIALMENTE
232-1 0
1
2 octetos
DESPUÉS DE
ENVIAR 2 OCTETOS
232-1 0
1
DESPUÉS DE
ENVIAR 2 OCTETOS
SIN RECIBIR ACK
232-1 0
1
DESPUÉS DE
RECIBIR ACK
232-1 0
1
2
WT =
Límite inferior de WT=
= primer octeto de datos
INICIALMENTE
232-1 0
1
2 octetos
WR =
Se guarda copia
en el buffer de transmisión
de los dos octetos (0 y 1)
Nuevo límite inferior
al girar WT
DESPUÉS DE RECIBIR 2 OCTETOS
DESPUÉS DE
RECIBIR 2 OCTETOS Y PASARLOS AL NIVEL DE APLICACIÓN
232-1 0
232-1 0
232-1 0
1
1
1
2
2
3
3
Se reserva espacio
Se guarda copia
Se gira WR para los próximos
en el buffer de recepción en el buffer de recepción
2 nuevos octetos (2 y 3)
para los octetos 0 y 1 de los dos octetos (0 y 1)
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
18
Sincronización de WR y WT para un Correcto Control de Flujo
 WR inicial = Tamaño máximo del propio buffer de recepción
 Posteriormente, en fase de transferencia de datos, WR va variando puntualmente en
función de los octetos libres de su buffer de recepción
 Se pasan datos al proceso de aplicación cuando se llena el buffer de
recepción
 Salvo que el bit PSH (Push) =1
 Se gira WR (límites inferior y superior) cuando se pasan datos
al proceso de aplicación (al llenarse el buffer de recepción)
 Límite inferior de WR = Primer octeto de datos que se espera recibir después
del último octeto pasado al proceso de aplicación
 WT inicial = WR inicial del otro extremo (tamaño máximo del buffer de
recepción del otro extremo)
 WT va variando, WT ≤ WR , en fase de transferencia de datos en función
de la WR del otro extremo
 Se gira WT (límites inferior y superior) cuando se recibe confirmación de
todos los octetos comprendidos entre el límite inferior y superior de WT
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
19
Formato de un Segmento TCP
Primer octeto
del campo de datos
del segmento de información
que se va a enviar = Nº de secuencia = 32 bits =
Módulo 232 = 0, 1, 2, …232-1, 0, 1, …, 232-1, 0, 1…
15 16
0
PUERTO ORIGEN
TCP
Máxima=60 octetos
PUERTO DESTINO
NÚMERO DE CONFIRMACIÓN (ACK)
Mínima por
=20 octetos
31
NÚMERO DE SECUENCIA
CABECERA
Omisión
Primer octeto
del campo de datos
del siguiente segmento
de información
que se espera recibir
(LOS OCTETOS ANTERIORES
ESTÁN CONFIRMADOS)
DESP
VENTANA
RESERVADO URG ACK PSH RST SYN FIN
SUMA DE COMPROBACIÓN
PUNTERO DATOS URGENTES
OPCIONES
RELLENO
DATOS (Variable)
SYN=1 ACK=0 Solicitud conexión
SYN=1 ACK=1 Respuesta OK!
Ventana deslizante de recepción:
Cantidad de octetos libres
Nº de octetos de datos
que se pueden almacenar
que el emisor de esta
información puede manejar en función del en el buffer de recepción
tamaño puntual de su buffer de recepción =
= 0 octetos, 1 octeto, 2 octetos hasta 216-1 octetos (65535 octetos o 16 unos)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
20
PSEUDOCABECERA TCP
0
15 16
8
31
DIRECCIÓN IP ORIGEN
PSEUDOCABECERA
TCP
DIRECCIÓN IP DESTINO
00000000 PROTOCOLO = 6
LONGITUD DEL SEGMENTO TCP
CABECERA TCP
DATOS (Variable)
•La pseudocabecera se antepone a la cabecera TCP (al igual que en UDP),
pero sólo a efectos de calcular el checksum, no se envía realmente
•Para no violar la jerarquía de cabeceras de protocolos puesto que las
direcciones IP que contiene pertenecen al nivel IP
•Permite a la entidad TCP (al igual que a la entidad UDP) receptora detectar
segmentos TCP mal entregados, es decir, comprobar que su nivel IP no se
ha equivocado y le ha pasado un segmento TCP que era para otra máquina
aunque dicho segmento TCP esté libre de errores
•El valor 6 (110 en binario) indica que el protocolo de transporte es TCP
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
21
Formato de las Opciones TCP
Campos de Información de Control de Longitud Variable para
Servicios Adicionales
RFC-793 y RFC-1323
Formato TLV: Tipo-Longitud-Valor (o Datos)
TIPO
LONGITUD
8 bits
8 bits
DATOS…OPCIÓN
(variable)
Longitud completa
de la opción en octetos
(TIPO + LONGITUD + DATOS)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
22
Opciones TCP más Relevantes
Descripción
TIPO
LONGITUD
(octetos)
DATOS
Descripción
0
-
-
Fin de la Lista
de Opciones
1
-
-
Sin operación
2
4
Valor MSS
MSS
3
3
Tamaño de la
Ventana
Escala de la
Ventana
4
2
-
SACK
PERMITTED
(Fase de
establecimiento)
5
Variable
-
SACK
(Fase de transferencia
de datos)
© Fco. Javier Yágüez García
8
10
Valor actual reloj emisor
(4 octetos) +
Respuesta Eco (4 octetos)
Marca de
Tiempo
…
…
…
…
ARQUITECTURA Y SERVICIOS DE INTERNET
23
Fase de Establecimiento de una Conexión TCP
Intercambio de 3 segmentos (con opción MSS)
Aparte de indicar el tamaño máximo de WR ,permite negociar opciones y números de
secuencia iniciales empleados en ambos extremos de la comunicación. Dichos números no
se reutilizarán durante un tiempo prudencial para evitar que los octetos de datos de
segmentos de información retrasados de una conexión se confundan con los de otra nueva
TCP “A”
Se confirman los números de
secuencia, las WR y las
opciones deseadas (p.ej., MSS)
© Fco. Javier Yágüez García
TCP “B”
ARQUITECTURA Y SERVICIOS DE INTERNET
Fase de Establecimiento de una Conexión TCP
Intercambio de 3 segmentos
Con VENTANA en “A” de 300 octetos y en “B” de 900 octetos
TCP “A”
Tamaño máximo
de VENTANA DE RECEPCIÓN
que desea “A”
Nº de secuencia que
desea usar la entidad “A”
TCP “B”
Ventana inicial:
• Control de flujo
impuesto por el
receptor
• La determina el
receptor al
establecer la
conexión
Tamaño máximo
de VENTANA DE RECEPCIÓN
que desea “B”
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
Ejemplo de Transferencia de Datos sin Errores
Transmisión unidireccional de datos (de “A” a “B”) sin errores
y con VENTANA en “A” de 300 octetos y en “B” de 900 octetos
TCP “A”
TCP “B”
…
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
Ejemplo de Transferencia de Datos con Errores
Transmisión unidireccional de datos (de “A” a “B”) con errores
(pérdidas de paquetes) y con VENTANA en “A” de 300 octetos y en “B” de 900 octetos
TCP “A”
TCP “B”
“A” transmite 900 octetos agrupados en 3
segmentos pendientes de confirmación
”B” ante la llegada de
los 300 primeros
octetos procede a
confirmarlos
No produce una retransmisión
(retransmisión por “timeout”)
sino una desactivación del timer
y una eliminación en el buffer de
transmisión de la copia de los
300 primeros octetos
Por omisión, mientras no
se reciba el segmento
perdido, se sigue
indicando, repetidamente
mediante
CONFIRMACIONES
DUPLICADAS, que se está
a la espera de sus octetos
de datos, ante la llegada
correcta de cualquier otro
segmento de datos no
contiguo o sin errores
CONFIRMACIÓN DUPLICADA Ante
la llegada correcta de bloques no
contiguos de octetos = NO
PRODUCE NINGÚN EFECTO en el
emisor de desactivación de timer y
eliminación de la copia de octetos
porque se ha hecho antes
time-out
No produce una retransmisión
retransmisión=timeout) sino una
desactivación de los timers y una
eliminación en el buffer de transmisión
de la copia de los 300 octetos del
segundo y tercer segmento
“B” vuelve a confirmar
los 300 primeros octetos
(no CONF=903 porque se
confirmarían los octetos
del 2º segmento)
time-out
DETECCIÓN DE DUPLICACIÓN
No producen ningún efecto
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
CAMPO DE OPCIONES DE INFORMACIÓN DE CONTROL
(LONGITUD VARIABLE DE HASTA 40 OCTETOS)






Se van incorporando poco a poco en las diferentes implementaciones de TCP
SE ESPECIFICAN EN LA FASE DE ESTABLECIMIENTO DE LA CONEXIÓN (sólo en aquellos segmentos
de control con el bit SYN = 1)
Tamaño Máximo de Segmento (MSS): Nº de octetos de la carga útil (campo de datos) que el receptor
(emisor de esta información) desea recibir para un procesado más óptimo de dicha carga. No confundir MSS con
el tamaño del buffer de recepción
Factor de Escala de la Ventana:
 Permite ampliar el campo VENTANA
 Equivale a usar un máximo de ventana de 32 bits. Por omisión, el tamaño máximo de la ventana de recepción
es de 216-1 octetos (65.535 octetos). Se puede escalar hasta llegar a 232-1 octetos (4.294.967.295 octetos o un
poco más de 4,2GB)
Confirmación selectiva (SACK: Selective Acknowledgment): Permite informar al emisor de los octetos
de datos de segmentos de información no contiguos que han sido recibidos correctamente y EVITAR
VENCIMIENTOS DE TEMPORIZADORES y RETRANSMISIONES INNECESARIAS, Implícitamente, indica
qué octetos de datos se han perdido o no han llegado todavía (“agujeros en los datos”)
Marca o sello de tiempo (Timestamp):
Tipo =8
Longitud = 10
Valor actual del reloj emisor
Eco del valor actual del reloj emisor
 Permite al emisor configurar sus temporizadores mediante el cálculo del valor RTT (Round Trip Time):
Tiempo de ida y vuelta desde que se envía un segmento de información hasta que se recibe su ACK
• Establecimiento de la conexión: El emisor puede enviar esta opción con SYN = 1, ACK = 0 y puede
hacer uso de dicha opción en otros segmentos, siempre y cuando, haya recibido respuesta con:
SYN = 1, ACK = 1
 Valor actual del reloj del emisor = valor monótamente creciente
 El eco es válido si el bit ACK = 1 en la cabecera del segmento
 El receptor devuelve el mismo valor (eco) en el ACK del segmento
 Asimismo, protege de errores de duplicación del NÚMERO DE SECUENCIA en conexiones de alta velocidad y, por
tanto, permite reconocer octetos distintos con el mismo número de secuencia en la misma conexión cuando los
números de secuencia dan la vuelta (0, 1, 2, …, 232-1, 0, 1…) durante el tiempo de vida de dicha conexión
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
28
Gestión de temporizadores en TCP
 No es lo mismo que el destino esté ubicado en la misma Ethernet o WiFi que disperso
geográficamente por Internet
 La elección de valores adecuados es mucho más compleja en el nivel de transporte que
en el nivel de enlace
 Diferencias en capacidad y retardo de unas conexiones TCP a otras
 Oscilaciones debidas a la presencia de routers y situaciones de congestión que están
fuera de su control
 Aún en situaciones de control, los routers pueden tener largas colas de datagramas IP
que atender, los enlaces pueden ser de diferentes velocidades y retardos y la ruta
puede variar durante la conexión
 La elección de un valor adecuado tiene una consecuencia directa en el funcionamiento
eficiente de TCP y hace que una implementación TCP sea más eficiente que otra
 Si el temporizador es demasiado alto, el emisor esperará innecesariamente en
ciertos casos por ACKs que nunca llegarán
 Si el temporizador es demasiado bajo se producirán retransmisiones innecesarias de
segmentos que habían sido correctamente recibidos
 Manejar los temporizadores (timers o timeouts) es siempre complejo porque hay que
determinar “aproximadamente” el periodo de tiempo existente desde que se envía un
segmento de información o datos hasta que se recibe su ACK, es decir, el tiempo de ida y
vuelta (RTT: Round Trip Time)
 Por todo lo anterior, los valores del temporizador se establecen mediante ALGORITMOS
AUTOADAPTATIVOS que dinámicamente ajustan los valores al estado de la red, según
es percibido éste por la entidad de transporte emisora
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
Temporizadores: Valores de Timeout
Estándar de Facto en las Implementaciones TCP
 Algoritmo autoadaptativo de Karn
para el cálculo del RTT (Round Trip
Time)
 Se toma una muestra RTT de cada segmento de
información transmitido (opción Marca de Tiempo)
 Se obtiene un promedio de dichas muestras
 Se le añade un margen de seguridad
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
30
Problemática TCP con Segmentos de Información
Perdidos o con Errores de Transmisión
 Segmentos TCP perdidos (DATOS y/o ACKs): En redes cableadas (Ethernet,
líneas serie o anillos en fibra óptica) la mayoría de las pérdidas es por congestión
IP en los routers y, además, por errores de transmisión en un nivel de enlace
inalámbrico (CRC WiFi), o por TTL = 0, IPv4 (checksum) y TCP (checksum)
 Errores físicos de transmisión: Redes inalámbricas no WiFi (Servicio no
orientado a conexión FIABLE), o redes de radio, enlaces móviles que
pueden provocar pérdidas de tramas a ráfagas
• Altas tasas de pérdidas de bits detectadas por SVT (pero sin
recuperación) y causadas por las pobres condiciones de propagación
 En los sistemas finales se aplica un control de flujo para evitar pérdidas de
datos extremo a extremo
 PROBLEMA: Mientras no se reciba correctamente el segmento de
información perdido (o que haya llegado con errores de transmisión), se envían
CONFIRMACIONES REPETIDAS y no se confirman los últimos segmentos
de información que han llegado correctamente PROVOCANDO EL
VENCIMIENTO DE SUS TEMPORIZADORES Y RETRANSMISIONES
INNECESARIAS
 SOLUCIÓN: Se introduce la opción de CONFIRMACIÓN SELECTIVA
(SACK: Selective Acknowledgment) que confirma los octetos de datos de
segmentos de información no contiguos que han sido recibidos correctamente
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
31
Tipos de Confirmaciones (ACKs)
 CONFIRMACIÓN (NO DUPLICADA O REPETIDA):
 Desactivación del temporizador del segmento de información que ha provocado dicha
confirmación
 Eliminación en el buffer de transmisión de la copia de los octetos de datos confirmados
 CONFIRMACIÓN DUPLICADA o REPETIDA:
 No produce ningún efecto si se ha hecho antes, es decir, no se ha perdido el anterior
ACK duplicado
 Peligro de que venza el temporizador del segmento de información no contiguo que ha
provocado dicha confirmación repetida Y SE REALICE UNA RETRANSMISIÓN
INNECESARIA
 Cuando al destino llegan segmentos TCP fuera de orden, el receptor transmite ACKs
duplicados o repetidos reconociendo que se han recibido segmentos no contiguos o fuera
de orden
 CONFIRMACIÓN DUPLICADA O REPETIDA CON SACK
(Selective Acknowledgment):
 DESACTIVACIÓN del temporizador del segmento de información no
contiguo
 ELIMINACIÓN en el buffer de transmisión de la copia de los octetos de
datos no contiguos confirmados
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
32
TCP SACK: TCP de Reconocimiento
Selectivo o Selective Acknowledgment
(SACK)
 Definido en el RFC-2018 y, posteriormente,
extendido en el RFC-2883
 Se recomienda la opción SACK cuando hay
múltiples pérdidas de segmentos TCP
 Por congestiones en los routers IP
 Por errores físicos en el nivel de enlace, especialmente, en
entornos inalámbricos (CRC de la trama)
 Para evitar innecesarias retransmisiones de
los octetos de datos de segmentos de
información no contiguos que ya fueron
entregados al receptor
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
33




Confirmación selectiva (SACK: Selective
Acknowledgment): RFC-2018 y RFC-2883
Dos Opciones
Para poder hacer uso de la opción Tipo 5 SACK en fase de
transferencia de datos hay que indicarlo previamente en fase de
establecimiento de la conexión TCP
Se indica mediante la opción Tipo 4 TCP Sack-Permitted en la fase
de establecimiento de la conexión TCP en un segmento SYN = 1
Mediante la opción Tipo 5 TCP Sack-Permitted se informa al
emisor de bloques no contiguos de octetos de datos que han sido
recibidos correctamente y, por tanto, en dónde puede haber
“agujeros en los datos”. Esta opción provoca la cancelación en el
emisor de los temporizadores de los segmentos que sabe que han
llegado correctamente al receptor y la eliminación de la copia de
los correspondientes octetos de datos en el buffer de transmisión
Si el receptor no ha recibido la opción Tipo 4 TCP SackPermitted en el establecimiento de la conexión, no debe usar la
opción Tipo 5 TCP Sack-Permitted en la fase de transferencia de
datos
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
34
Un Ejemplo de un Paquete SACK
Transmisión unidireccional de datos (de “A” a “B”) con errores,
con VENTANA en “B” de 900 octetos,
y haciendo uso de la opción SACK
TCP “A”
TCP “B”
“A” transmite 900 octetos agrupados
en 3 segmentos pendientes de confirmación
“B” ante la llegada de los
300 primeros octetos
procede a confirmarlos
No produce una retransmisión
(retransmisión=timeout) sino una
desactivación del timer y una
eliminación en el buffer de
de transmisión de la copia de
los 300 primeros octetos
SEGMENTO CONTIGUO
(al último recibido correctamente)
SEGMENTO NO CONTIGUO
“B” emplea SACK
…
TCP “A” sabe que los octetos del
303 al 602 no han llegado todavía
pero sí los octetos del 603 al 902.
Por tanto cancela el temporizador
de dichos octetos (tercer segmento)
y elimina copia de los mismos
© Fco. Javier Yágüez García
PRIMER OCTETO DE DATOS RECIBIDO DEL
PRIMER SEGMENTO DE INFORMACIÓN NO
CONTIGUO QUE HA HECHO ENVIAR
EL PRIMER PAQUETE SACK
Permite confirmar al
emisor los octetos de
datos de SEGMENTOS DE
INFORMACIÓN NO
CONTIGUOS recibidos
correctamente o sin
errores, EVITANDO,
vencimiento de timers y
retransmisiones
innecesarias
PRIMER OCTETO DE DATOS QUE SE ESPERA
RECIBIR DEL SIGUIENTE SEGMENTO
DE INFORMACIÓN NO CONTIGUO
Y CONSECUTIVO
ARQUITECTURA Y SERVICIOS DE INTERNET
35
2 Tipos de Paquetes SACK
 Con 1 bloque de información de control en el
campo DATOS ÓPCIÓN
 Para segmentos de información NO CONTIGUOS Y
CONSECUTIVOS, es decir, SIN PÉRDIDAS entre ellos
 Con “n” bloques de información de control en
el campo DATOS ÓPCIÓN
 Para segmentos de información NO CONTIGUOS Y NO
CONSECUTIVOS, es decir, CON PÉRDIDAS entre ellos
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
36
Paquete SACK con “1 Bloque” para Segmentos
No Contiguos y Consecutivos (Sin Pérdidas)
USO DE LA OPCIÓN SACK CON CAMPO DATOS OPCIÓN DE UN ÚNICO BLOQUE
TIPO=5
LONGITUD
(variable)
DATOS OPCIÓN
X1 – Y1
 “X1” (32 bits) = BORDE IZQUIERDO DEL BLOQUE “1” = PRIMER NÚMERO DE
SECUENCIA DEL BLOQUE “1” = “PRIMER” OCTETO DE DATOS RECIBIDO DEL
“PRIMER” SEGMENTO DE INFORMACIÓN NO CONTIGUO QUE HA HECHO ENVIAR EL
“PRIMER” PAQUETE SACK
• X1 es el mismo valor para todos los paquetes SACK siempre que los siguientes segmentos de
información no contiguos recibidos sean consecutivos
 “Y1” (32 bits) = BORDE DERECHO DEL BLOQUE “1” = NÚMERO DE SECUENCIA
SIGUIENTE AL ÚLTIMO NÚMERO DE SECUENCIA DEL BLOQUE “1” = PRIMER
OCTETO DE DATOS QUE SE ESPERA RECIBIR DEL SIGUIENTE SEGMENTO DE
INFORMACIÓN NO CONTIGUO Y CONSECUTIVO
• Si los octetos de datos recibidos, de los siguientes segmentos de información no
contiguos, son consecutivos, entonces, se agrupan éstos en el mismo bloque X1-Y1
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
37
Un Ejemplo de un Paquete SACK con “1 Bloque”
Transmisión unidireccional de datos (de “A” a “B”) con errores
haciendo uso de SACK
CONFIRMACIONES A SEGMENTOS NO CONTIGUOS Y CONSECUTIVOS
(sin pérdidas) al último segmento de información recibido correctamente
TCP “A”
TCP “B”
¿Cuándo se retransmite el segmento
SEC=22550, Datos=431?
¿Respuestas de “B”?
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
38
TCP “A”
VENCIMIENTO
DEL
TEMPORIZADOR
(SOLUCIÓN)
TCP “B”
CONFIRMACIONES A BLOQUES
NO CONTIGUOS CONSECUTIVOS
Se intenta agrupar
el máximo de octetos
de datos consecutivos
en cada paquete SACK
Ante la llegada de
cualquier segmento,
de información no contiguo
y consecutivo, se indican
siempre los octetos de datos
ya recibidos y se agrupan
los octetos del último segmento
en el mismo bloque
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
39
Extensión con “N” Bloques del Paquete SACK para
Segmentos No Contiguos y No Consecutivos (Con Pérdidas)
TIPO=5
LONGITUD
(variable)
Informa del segmento recibido más recientemente
DATOS OPCIÓN
X1 – Y1 … Xn – Yn
 Se pueden enviar hasta 4 bloques NO CONSECUTIVOS SACK (34 octetos) si se emplea
casi todo el espacio del campo de opciones TCP (máximo de 40 octetos) para la opción
SACK
• Se recuerda que si los nuevos octetos de datos son consecutivos con los anteriores
ya recibidos, entonces, se agrupan en un mismo primer bloque X1-Y1
 El bloque 1 (X1 – Y1) debe informar del segmento recibido más recientemente. Asegura
que el ACK con la opción SACK refleje el cambio más reciente en el buffer de recepción.
Así el emisor tiene información actualizada del estado de la red y del estado de la cola de
recepción
• Si llega nuevos segmentos (p. ej., datos = 7000-7500 y 6000-6500) y se pueden
agrupar sus octetos con otro u otros bloques ya recibidos, entonces, se agrupan
todos los octetos que se puedan en el correspondiente bloque. P. ej.:
(6500-7000) (8000-8500) (7000-7500) (6000-6500) = (6000-7500) (8000-8500)
 Después del primer bloque SACK, los siguientes pueden estar listados en orden arbitrario
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
40
Extensión con “N” Bloques del Paquete SACK para
Segmentos No Contiguos y No Consecutivos (Con Pérdidas)
TIPO=5
LONGITUD
(variable)
Informa del segmento recibido más recientemente
DATOS OPCIÓN
X1 – Y1 … Xn – Yn
 “X1” (32 bits) = BORDE IZQUIERDO DEL BLOQUE “1” = PRIMER NÚMERO DE
SECUENCIA DEL BLOQUE “1” = PRIMER OCTETO DE DATOS RECIBIDO DEL SEGMENTO
DE INFORMACIÓN NO CONTIGUO QUE HA HECHO ENVIAR EL PAQUETE SACK
 “Y1” (32 bits) = BORDE DERECHO DEL BLOQUE “1” = NÚMERO DE SECUENCIA
SIGUIENTE AL ÚLTIMO NÚMERO DE SECUENCIA DEL BLOQUE “1” = PRIMER OCTETO
DE DATOS QUE SE ESPERA RECIBIR DEL SIGUIENTE SEGMENTO DE INFORMACIÓN NO
CONTIGUO Y CONSECUTIVO
• El bloque 1 (X1-Y1) debe informar del segmento recibido más recientemente.
• Después del primer bloque SACK, los siguientes pueden estar listados en orden arbitrario
 “Xn” (32 bits) = BORDE IZQUIERDO DEL BLOQUE “n” NO CONSECUTIVO = PRIMER
NÚMERO DE SECUENCIA DEL BLOQUE “n” = RECORDATORIO DEL PRIMER OCTETO DE
DATOS YA RECIBIDO DE UN SEGMENTO DE INFORMACIÓN NO CONTIGUO Y NO
CONSECUTIVO
 “Yn” (32 bits) = BORDE DERECHO DEL BLOQUE “n” NO CONSECUTIVO = NÚMERO DE
SECUENCIA SIGUIENTE AL ÚLTIMO NÚMERO DE SECUENCIA DEL BLOQUE “n” =
RECORDATORIO DEL PRIMER OCTETO DE DATOS QUE SE ESPERA RECIBIR DEL
SIGUIENTE SEGMENTO DE INFORMACIÓN NO CONTIGUO Y NO CONSECUTIVO
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
41
Un Ejemplo de un Paquete SACK Ampliado
Transmisión unidireccional de datos (de “A” a “B”) con errores
haciendo uso de SACK
CONFIRMACIONES A SEGMENTOS NO CONTIGUOS Y NO CONSECUTIVOS
TCP “A”
TCP “B”
¿Cuándo se retransmite el segmento
SEC=22550, Datos=431?
¿Respuestas de “B”?
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
42
TCP “A”
VENCIMIENTO
DEL
TEMPORIZADOR
(SOLUCIÓN)
TCP “B”
CONFIRMACIONES A BLOQUES
NO CONTIGUOS
NO CONSECUTIVOS
SACK ampliado
con más bloques
de información
Si hay espacio en el campo
de opciones TCP, se pueden
enviar hasta 4 bloques
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
43
C1
TCP “A”
ENTIDAD EMISORA
C2
TCP “B”
ENTIDAD RECEPTORA
Internet
Asumiendo que la entidad emisora TCP “A” de C1 transmite una ráfaga de
8 segmentos de información conteniendo cada uno 500 octetos de datos;
indicar la fase de transferencia de datos desde su inicio, por ejemplo,
mediante una tabla asociando los octetos de datos de los segmentos
de información y sus confirmaciones (Nº de Secuencia del primer octeto enviado,
ACK de respuesta, Datos SACK de respuesta)
Para ello, se debe tener en cuenta que:
La entidad receptora TCP “B” de C2 hace uso de la opción SACK y, además,
dispone en todo momento de suficiente capacidad en su buffer de recepción
El primer octeto de datos que espera recibir la entidad receptora TCP “B”
de C2 es el 5000
El primer segmento de información se pierde pero los 7 restantes se reciben
Las confirmaciones llegan a C1 en el momento adecuado
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
44
SEGMENTO ENVIADO
(SEC)
Nº DE CONFIRMACIÓN
(ACK)
DATOS OPCIÓN SACK
(BLOQUE SACK)
1
5000
(datos=500)
2
5500
(datos=500)
5000
5500-6000
3
6000
(datos=500)
5000
5500-6500
4
6500
(datos=500)
5000
5500-7000
5
7000
(datos=500)
5000
5500-7500
6
7500
(datos=500)
5000
5500-8000
7
8000
(datos=500)
5000
5500-8500
8
8500
(datos=500)
5000
5500-9000
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
45
C1
TCP “A”
ENTIDAD EMISORA
C2
TCP “B”
ENTIDAD RECEPTORA
Internet
Asumiendo que la entidad emisora TCP “A” de C1 transmite una ráfaga de
8 segmentos de información conteniendo cada uno 500 octetos de datos
(y sin tener en cuenta el envío del ejemplo anterior); indicar la fase de
transferencia de datosdesde su inicio, por ejemplo, mediante una tabla
asociando los octetos de datos de los segmentos de información y sus
confirmaciones (Nº de Secuencia del primer octeto enviado, ACK de respuesta,
Datos SACK de respuesta)
Para ello, se admite que:
La entidad receptora TCP “B” de C2 hace uso de la opción SACK y, además,
dispone en todo momento de suficiente capacidad en su buffer de recepción
El primer octeto de datos que espera recibir la entidad receptora TCP “B” de C2
es el 5000
Se pierden los segmentos segundo, cuarto, sexto y octavo pero los restantes
se reciben
Después de transmitirse el octavo segmento, se retransmiten por vencimiento de
temporizadores y, por tanto, se reciben fuera de orden el cuarto y, a continuación,
el segundo segmento de información
Las confirmaciones llegan a C1 en el momento adecuado
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
46
SEGMENTO
ENVIADO
(SEC)
Nº DE CONFIRMACIÓN
(ACK)
1
5000
(datos=500)
5500
2
5500
(datos=500)
3
6000
(datos=500)
4
6500
(datos=500)
5
7000
(datos=500)
6
7500
(datos=500)
7
8000
(datos=500)
8
8500
(datos=500)
4
2
DATOS OPCIÓN
SACK
DATOS OPCIÓN
SACK
DATOS OPCIÓN
SACK
(PRIMER BLOQUE
SACK)
(SEGUNDO BLOQUE
SACK)
(TERCER BLOQUE
SACK)
5500
6000-6500
5500
7000-7500
6000-6500
5500
8000-8500
7000-7500
6500
(datos=500)
5500
6000-7500
8000-8500
5500
(datos=500)
7500
© Fco. Javier Yágüez García
6000-6500
(agrupa)
8000-8500
(agrupa)
ARQUITECTURA Y SERVICIOS DE INTERNET
47
Congestión en Internet
RFC-5681: TCP Congestión Control
 Congestión = Pérdida de 1 o más paquetes o datagramas IP
 Causa posible: Desborde del buffer de la cola del interfaz de salida
de un ROUTER
 Exceso de tráfico de entrada en alguna o algunas redes de Internet: Tasas de
paquetes de entrada superan las capacidades de los enlaces salida
• La situación se complica si los enlaces de salida son de menor
capacidad que los enlaces de entrada
 En principio, no se puede conocer el estado de todos los sistemas intermedios
 Cuando los paquetes llegan a la parte congestionada de la red, como el
router de acceso no puede aceptar todo el tráfico entrante,
empezará a acumularlos en su buffer de la cola del interfaz de
salida y cuando éste se llene, empezará a descartar
 Basta que uno de los enlaces del trayecto se vea afectado por la congestión para
limitar el tráfico en todo el camino y, por tanto, el rendimiento de la
comunicación entre los sistemas finales
 Las aplicaciones se bloquean o dejan de funcionar
 La congestión se detecta en TCP por vencimiento de temporizadores o
“timeouts” (alta probabilidad de congestión)
 La entidad TCP receptora recibirá sólo una parte de los segmentos por lo que la entidad
TCP emisora retransmitirá por timeout aquéllos que no hayan sido confirmados
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
48
Pérdidas de Paquetes en los Routers
La congestión en Internet es la pérdida de 1 o más paquetes IP
debido al desborde del buffer de la cola del interfaz de salida
de un router cuando las tasas de entrada superan las capacidades de salida
enlaces
de entrada
…
Proceso
IP
Caudal
IP
IP
IP
IP
buffer de la cola
del interfaz de salida
enlaces
de entrada
…
enlace
de salida
Descarte del último
CONGESTIONES O PERDIDAS DE PAQUETES IP EN UN ROUTER DE ACCESO,
ESPECIALMENTE CRÍTICO EN ENLACES DE ENTRADA DE ALTA CAPACIDAD
Y ENLACES DE SALIDA DE MENOR CAPACIDAD
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
49
Flujo y Congestión: Conceptos Diferentes
RECORDATORIO
 La VENTANA DE RECEPCIÓN WR garantiza que no se inunde
al receptor ejerciendo un CONTROL DE FLUJO sobre el emisor
 Sin embargo, los problemas podrían estar en Internet: Muchas
veces el “cuello de botella” está en la red y no en el receptor
 Los buffers de las colas de salida de los routers pueden desbordarse
 Además, del CONTROL DE FLUJO necesitamos un CONTROL
DE CONGESTIÓN
 ¿Cómo notificar a la entidad TCP emisora de que hay una saturación en algún
punto del trayecto y de que debe bajar el ritmo de transmisión?
Mediante una VENTANA DE CONGESTIÓN WC
que indica el número de segmentos que el emisor puede
enviar en un momento dado sin congestionar a ningún
router en Internet
 La WC actúa simultáneamente y en paralelo con WR
 Respuesta:
 En cada momento, el emisor tomará en consideración la más pequeña de
las dos ventanas para asegurarse de que no satura al receptor ni provoca,
o contribuye a agravar, una situación de congestión en la red
WT = min (WR , WC )
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
50
Flujo y Congestión: Conceptos Diferentes
 La WR se notifica al emisor por el receptor: EL
CONTROL DE FLUJO LO EJERCE LA ENTIDAD
TCP RECEPTORA
 La WC la calcula el emisor a partir de la cantidad de
retransmisiones (pérdidas de segmentos TCP o
“timeouts”) que tiene que realizar: EL CONTROL DE
LA CONGESTIÓN LO EJERCE LA ENTIDAD TCP
EMISORA
 El emisor va tanteando la red, transmitiendo tan rápido
como sea posible hasta que se produzca un “timeout”, a
partir de ahí reduce, drásticamente, el ritmo de sus envíos
(WC y, por tanto WT) y va aumentando dicho ritmo,
paulatinamente, hasta un nuevo “timeout” (nueva pérdida y
retransmisión), repitiendo de nuevo el proceso
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
51
Mecanismos de Control de la Congestión
RFC-5681
Implemetados en cualquier distribución actual TCP/IP
y utilizados por el protocolo TCP cuando los routers en Internet descartan o
pierden paquetes IP al desbordarse la capacidad de almacenamiento de los buffers
asociados a las colas de los interfaces de salida
1. Comienzo Lento (Slow Start)
2. Prevención de la Congestion (Congestion
Avoidance)
3. Retransmisión Rápida (Fast Retransmit)
4. Recuperación Rápida (Fast Recovery)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
52
Mecanismo de Control de la Congestión
Comienzo Lento o SS (Slow Start)
 Con SS se transmiten segmentos de información de forma exponencial
(1, 2, 4, 8, ...) al ritmo al que se reciben los ACK desde el otro extremo
 WC , que SE MIDE EN SEGMENTOS con un campo datos, por omisión, de
1024 octetos (1 segmento = 1 MSS, por omisión, de 1Kbyte o 1024 octetos),
crece exponencialmente sólo si todos los segmentos de información enviados
han sido confirmados
• Si hay un ACK retrasado, el incremento, en el tamaño de WC, no es
exponencial
 Se denomina COMIENZO LENTO porque se empieza a transmitir
lentamente, primero 1 segmento, luego 2 segmentos y, así, sucesivamente;
pero en realidad se transmite muy rápido (exponencialmente): 1, 2, 4, 8, 16,
32, 64) y en sólo 7 interacciones (envío de un grupo de 64 segmentos de
información) se llega a 65.535 octetos (asumiendo un MSS típico de 1024
octetos) que es el valor máximo por omisión de TCP para WR y que coincide
con el VALOR INICIAL DEL UMBRAL DE CONGESTIÓN o UMBRAL
DE PELIGRO o LÍMITE DE CRECIMIENTO DE WC impuesto por TCP,
el cual va variando posteriormente en función de la congestión en Internet
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
53
Inicio de la Fase de Transferencia de Datos con
Comienzo Lento o SS (Slow Start): Sin Congestión en la Red
Con SS se envían segmentos de información
a la red de forma exponencial (1, 2, 4, 8, etc.)
al ritmo al que se reciben los ACK desde el otro extremo
TCP “A”
WC = 1
TCP “B”
ACK
WC = 2
Cada ráfaga confirmada ACKs
duplica WC
WC = 4
ACKs
…
© Fco. Javier Yágüez García
Si hay un ACK retrasado
el incremento en el
tamaño de la ventana es
menor que la potencia de 2
ARQUITECTURA Y SERVICIOS DE INTERNET
54
Comienzo Lento o SS (Slow Start) Sin Congestión en la Red
1ª interacción
WC SE MIDE EN SEGMENTOS con 1 MSS,
por omisión, de 1Kbyte o 1024 octetos. Por
tanto, 1 segmento = 1024 octetos
WC se inicializa a 1 segmento o 1 MSS de
1 Kbyte (1024 octetos)
A su vez, p.ej., WR = 65.535 octetos
Todos los segmentos tienen
un MSS por omisión = 1024 octetos = 1Kbyte
y se activa el primer timer.
WT = min (WR =65.535 octetos, WC = 1)
Si ACK llega antes del timeout
WT = WC = 2 Kbytes y se envían
2 segmentos y se activan 2 timers.
Si llegan los ACK a tiempo
WT = WC = 4 Kbytes y se envían
4 segmentos y se activan 4 timers.
WC va creciendo
EXPONENCIALMENTE
duplicándose en cada envío.
Sin congestión, WC crece
rápidamente y en sólo 7 interacciones
(1, 2, 4, 8, 16, 32, 64) se llegaría a 65.535 octetos
(valor máximo de TCP para WR)
© Fco. Javier Yágüez García
2ª interacción
3ª interacción
4ª interacción
…
ARQUITECTURA Y SERVICIOS DE INTERNET
55
Mecanismo de Control de la Congestión
Comienzo Lento o SS (Slow Start)
1. WC = 1 (inicialmente 1 segmento o 1 MSS del tamaño máximo para la conexión)
2.
Valor inicial del umbral de congestión = 64 segmentos o 65.535 octetos (valor
máximo de WR )
3. WC = 1, 2, 4, 8, …, (WT = WC) va creciendo exponencialmente
(mientras se reciben todos los ACK) hasta superar:
 La WR actual y puntual en el otro extremo TCP (se establece un control de flujo)
 El valor inicial del umbral de congestión o umbral de peligro o límite de crecimiento
máximo impuesto por TCP inicialmente para WR de 65.535 octetos
 El buffer de algún router y se produzca la primera pérdida de paquete o “timeout”
4. Cada vez que se detecta un “timeout” o pérdida se obtiene un nuevo
UMBRAL DE CONGESTIÓN, que toma como valor la mitad del tamaño
actual de WC . A su vez, WC se reduce de una manera drástica al valor
inicial de 1 segmento. Ahora, WC empieza a crecer exponencialmente como
antes (WC = 1, 2, 4, 8, …, ) pero sólo hasta el nuevo umbral de congestión
donde permanece aunque no haya pérdidas
 Nuevo umbral de congestión o límite de crecimiento de WC = WC (actual)/2
 WC = 1 (y, luego, 2, 4, 8, …)


Reducción rápida y significativa del tráfico para que el router se recupere
Mientras el tamaño máximo de WC permanezca en el umbral de congestión, no
se enviará una ráfaga de mayor longitud, sin importar la cantidad de espacio
de WR ofrecida por el receptor en el supuesto de ser superior
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
56
Mecanismo de Control de la Congestión
Prevención de la Congestion o CA (Congestion Avoidance)
 Para aumentar el rendimiento en la transferencia, se combina SS y CA con el
objetivo de seguir transmitiendo a partir de donde SS finaliza, es decir, desde el
nuevo umbral de congestión calculado en SS
 Para ello, se incrementa WC LINEALMENTE (de “1 en 1”) desde el nuevo
umbral hasta que se supere el tamaño actual de WR en el otro extremo TCP
(control de flujo) o el buffer de algún router (vencimiento de temporizador),
REPITIÉNDOSE EL PROCESO
 Una nueva pérdida (congestión), momento a partir del cual se aplica de
nuevo SS, obteniéndose un nuevo umbral de congestión, en un valor
igual a la mitad del tamaño actual de WC. A su vez, WC se reduce de una
manera drástica al valor inicial de 1 segmento. Ahora, WC de nuevo
empieza a crecer exponencialmente, pero sólo hasta el nuevo umbral de
congestión a partir del cual se vuelve a aplicar CA
 El objetivo es no quedarse bloqueado en el nuevo umbral (SS) sino seguir
transmitiendo lentamente desde dicho nuevo umbral dando tiempo a que el
router se recupere
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
57
Prevención de la Congestión (Congestion
Avoidance) y Comienzo Lento (Slow Start)
Funcionamiento conjunto
 Objetivo de cada algoritmo:
Comienzo Lento o SS (Slow Start): Tantear la red,
transmitiendo, tan rápido como sea posible, hasta que se
produce una congestión, momento a partir del cual se calcula
el nuevo umbral, se reduce WC = 1 y se transmite
exponencialmente hasta el nuevo umbral
Prevención de la Congestión o CA (Congestion
Avoidance) = Una vez que se ha producido la congestión, y
en combinación con SS, sigue transmitiendo linealmente a
partir de donde SS finaliza (nuevo umbral de congestión),
dando tiempo a que el router se recupere
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
58
Ejemplo de Funcionamiento Conjunto de SS y CA: Se producen
perdidas de segmentos de información cuando WC es mayor de
20 segmentos o 20 Kbytes (1 segmento = 1 MSS de 1 Kbyte)
FASE
UMBRAL DE
CONGESTIÓN en
KBytes
WC en KBytes
(VENTANA DE
CONGESTIÓN)
64 segmentos
Primera
(valor inicial)
Segunda
Tercera
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
59
Ejemplo de Funcionamiento Conjunto de SS y CA: Se producen
perdidas de segmentos de información cuando WC es mayor de
20 segmentos o 20 Kbytes (1 segmento = 1 MSS de 1 Kbyte)
FASE
UMBRAL DE
CONGESTIÓN en
KBytes
WC en KBytes
(VENTANA DE
CONGESTIÓN)
SS
Primera
64 (valor inicial)
1,2,4,8,16,32
Se produce un timeout cuando WC = 32
A partir del umbral =16, WC se incrementa de 1 en 1
Segunda
16
1,2,4,8,16,17,18,19,20,21
SS
CA
A partir del umbral =10,5, WC se incrementa de 1 en 1
Tercera
10,5
Umbral de congestión = 10 porque si
se envían 11 segmentos > 10,5
© Fco. Javier Yágüez García
1,2,4,8,10,11,12,13,14,15,
16,17,18,19,20,21
ARQUITECTURA Y SERVICIOS DE INTERNET
60
2 Tipos de Retransmisiones TCP
 En las implementaciones actuales TCP, hay una
RETRANSMISIÓN si:
Expira un temporizador de retransmisión
= PÉRDIDA SEGURA DE SEGMENTO =
Alta seguridad de que haya congestión en
Internet
Llegan 3 CONFIRMACIONES (ACKs)
duplicadas = PÉRDIDA PROBABLE DE
SEGMENTO = No hay seguridad de que haya
congestión en Internet “PERO, POR SI
ACASO”, no se espera al vencimiento del
temporizador y se aplica el mecanismo de
Retransmisión Rápida
ARQUITECTURA Y SERVICIOS DE INTERNET
© Fco. Javier Yágüez García
61
2 Tipos de Control de la Congestión
 Si la detección se debe a un vencimiento de temporizador =
ALTA SEGURIDAD DE CONGESTIÓN y se aplica SS y CA
 CONTROL DE LA CONGESTIÓN (Comienzo Lento y
Prevención de la Congestión) A PARTIR DE UN
“TIMEOUT”
 Si la detección de debe a 3 ACKs duplicados = BAJA
SEGURIDAD DE CONGESTIÓN y, en principio, se aplica
RETRANSMISIÓN RÁPIDA
 CONTROL DE LA CONGESTIÓN (Prevención de la
Congestión) A PARTIR DE 3 ACKs DUPLICADOS que
implica como ventaja adicional una recuperación más
rápida del potencial segmento de información perdido sin
esperar a que expire su temporizador
 Puede ser que a lo mejor no se ha perdido el segmento, es
decir, no hay congestión y no es necesario que WC = 1
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
62
Mecanismo de Control de la Congestión:
Retransmisión Rápida (Fast Retransmit)
 Retransmisión de un
segmento después de
la recepción de 3
ACKs duplicados,
sin esperar al
“timeout”
 3 ACKs duplicados
significa que,
probablemente, se ha
perdido 1 segmento
Si se han recibido 3 ACKs
hay una probabilidad baja
de congestión, se puede
haber perdido un segmento
pero 3 segmentos ya han llegado
ya que se han recibido 3 ACKs
3 ACKs duplicados
= 4 ACKs idénticos en secuencia
RETRANSMISIÓN
Por si acaso, no se espera a que se “dispare”
el temporizador de retransmisión de “b”
Si se reciben 3 ACKs duplicados
seguidos, retransmitir de inmediato
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
63
Retransmisión Rápida
 No es un mecanismo estricto de control de la
congestión en Internet
 Es un mecanismo de retransmisión de la
forma más rápida posible (sin esperar el
vencimiento del temporizador) de un
segmento de información y que, posiblemente
(no es seguro), se ha perdido debido a una
presumible congestión en un router por la
llegada de 3 confirmaciones duplicadas
 Pero en combinación, a su vez, con el
mecanismo de Prevención de la Congestión
(CA) da origen a un nuevo mecanismo de
control de la congestión denominado
Recuperación Rápida (Fast Recovery)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
64
Mecanismo de Control de la Congestión:
Recuperación Rápida (Fast Recovery)
 Si la probable congestión se debe a 3 ACKs
DUPLICADOS = Se hace una Recuperación
Rápida = Retransmisión rápida y CA (a partir del
nuevo umbral)
• Se retransmite inmediatamente el segmento afectado
(RETRANSMISIÓN RÁPIDA), se calcula el nuevo umbral de
congestión y se comienza DIRECTAMENTE en una nueva
fase de CA a partir del nuevo umbral (sin comenzar desde 1
segmento a crecer exponencialmente hasta el nuevo umbral y,
luego, linealmente)
• P. ej., si se han recibido 3 ACKs, se calcula el nuevo umbral =
6, se retransmite inmediatamente el segmento afectado y se
comienza linealmente a partir de 7, 8, 9, … (y no a partir de 1,
2, 4, 6, 7, 8, 9, …, etc., porque tal vez no hay congestión y no es
necesario que WC = 1)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
65
Ejemplo de Recuperación Rápida: Se produce “timeout” cuando
WC = 20 segmentos y el nuevo umbral de congestión = 16 segmentos.
Posteriormente, se reciben 3 ACKs cuando se envían 12 segmentos
WC máxima en
FASE
UMBRAL DE
CONGESTIÓN
En un momento anterior, WC =32, se
produjo timeout y el nuevo umbral de
congestión pasó a valer 16
Primera
16
segmentos
(VENTANA DE
CONGESTIÓN) =32
SS
CA…
1, 2, 4, 8, 16, 17, 18,
19, 20 (timeout)
CA…
SS
Segunda
10
1, 2, 4, 8, 10, 11, 12
(3 ACKs)
CA …
Tercera
© Fco. Javier Yágüez García
6
7, 8, 9, …, 20 (timeout)
ARQUITECTURA Y SERVICIOS DE INTERNET
66
Implementaciones TCP
 RFC-793, STD 0007 (1981):
 TCP Sin control de congestión
 RFC-5681 (1999):
 TCP con control de la congestión
 Implementación TCP Tahoe (1988)
 Algoritmo básico de control de congestión (Comienzo lento)
 Implementación TCP Reno (1990)
 Tahoe + Prevención de la congestión + Retransmisión rápida + Recuperación
rápida
 Implementación TCP New Reno (1996)
 El Reno optimizado es la implementación, por omisón, que
se encuentra en la mayoría de las distribuciones TCP/IP e
incluye los cuatro mecanismos de control de la congestión
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
67
2 Notificaciones de Congestion en TCP
 Notificación o señalización implícita por:
– Vencimiento de temporizador (“timeout”)
» Mecanismos: SS y CA
– Recepción de 3 ACKs duplicados
» Mecanismos: Recuperación rápida = Retransmisión rápida y
CA (a partir del nuevo umbral)
 Notificación o señalización explícita por indicación del router
• ECN (Explicit Congestion Notification): RFC-3168 y RFC-2884
• La transmisión se ajusta en la entidad TCP emisora sólo cuando una
entidad IP intermedia, que empieza a acercarse a su umbral de
congestión, se lo notifica explícitamente a la entidad TCP receptora y
ésta se lo comunica, finalmente, a la entidad TCP emisora
– VENTAJA: En vez de descartar, y que se produzcan timeouts, el
router señaliza al receptor antes de que los buffers se llenen
– Despúes, el receptor avisa al emisor y éste disminuye el ritmo de
envío
• Ya hay algunas implementaciones de ECN (Linux)
• Alternativa de señalización explícita: Mensaje ICMPv4 de frenado en el origen
(Tipo=4 Código=0): No se usa por seguridad (prevención de ataque a un
router). Además, no existe el mensaje ICMPv6 de frenado en el origen
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
68
DATAGRAMA IPv4
Recordatorio
Los 2 bits de menor orden del campo ToS de la cabecera
IPv4 se usan para la notificación explícita de congestión
4
4
VERSIÓN
8
Longitud
Cabecera
16
TIPO DE SERVICIO
0
IDENTIFICADOR
TIEMPO DE VIDA
(TTL)
LONGITUD TOTAL
000 R C F 00
D M
F F
DESPLAZAMIENTO
SUMA DE COMPROBACIÓN
(CABECERA)
PROTOCOLO
CABECERA
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
RELLENO
OPCIONES
DATOS
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
69
Cabecera IPv4:DSCP-ECN
Punto de Código de Servicios Diferenciados
Differentiated Services
Code Point
4
4
VERSIÓN
8
Longitud
Cabecera
TIPO DE SERVICIO
DSCP
TIEMPO DE VIDA
(TTL)
ECT (Explicit Congestion Notification) Capable Transport =
Bit de Transporte de Notificación Explícita de Congestión
EC (Experienced Congestion) = Bit de Detección de Congestión
16
E
C E
T C
LONGITUD TOTAL
0
IDENTIFICADOR
Para control de la congestión
D M
F F
PROTOCOLO
DESPLAZAMIENTO
SUMA DE COMPROBACIÓN
(CABECERA)
CABECERA
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
RELLENO
OPCIONES
DATOS
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
70
Cabecera Fija IPv6:DSCP-ECN
Punto de Código
de Servicios Diferenciados
Differentiated Services
Code Point
0
4
Versión
Prioridad (8bits)
12
ECT/EC
31
Etiqueta de flujo (20 bits)
xxxxxxxx
Longitud de la carga útil
Cabecera
siguiente
Dirección de origen (16 octetos)
Límite
de saltos
40
octetos
Dirección de destino (16 octetos)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
71
Formato de un Segmento TCP-ECN
(Explicit Congestion Notification)
Los 2 bits de menor orden del campo RESERVADO de la
cabecera TCP se usan para el control de la congestión
15 16
0
PUERTO ORIGEN
31
PUERTO DESTINO
NÚMERO DE SECUENCIA
NÚMERO DE CONFIRMACIÓN (ACK)
RESERVADO
4 BITS
DESP
C
W
R
E
C
N
VENTANA
URG ACK PSH RST SYN FIN
SUMA DE COMPROBACIÓN
PUNTERO URGENTE
RELLENO
OPCIONES
DATOS (Variable)
Explicit Congestion Notification-Echo =
= Bit de Eco de Notificación Explícita de Congestión
Congestion Window Reduced =
= Bit de Ventana de Congestión Reducida
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
72
Cabecera TCP-ECN
 El uso de ECN en fase de transferencia de datos obliga
a indicarlo previamente en fase de establecimiento de la
conexión TCP
 El EMISOR activa los 2 bits (CWR y ECN-ECHO) en
el segmento de solicitud de establecimiento de la
conexión y el RECEPTOR activa el bit ECN-ECHO en
el segmento de respuesta SYN =1, ACK =0
 SYN = 1, ACK = 0 (SOLICITUD con los bits CWR = 1 y ECN-ECHO = 1)
 SYN = 1, ACK = 1 (RESPUESTA con los bits CWR = 0 y ECN-ECHO = 1)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
73
Control de la Congestion en TCP
 Metodología por Señalización Explícita ECN
Notification Congestion): RFC-3168 y RFC-2884
(Explicit
El emisor activa el bit de Transporte de Notificación Explícita de
Congestión o ECT (ECN Capable Transport) de la cabecera IP
solicitando bit de Eco de Notificación Explícita de Congestión
(ECN) para dicho paquete a cualquier router que detecte congestión
El router, al empezar a acercarse a su umbral de congestión, activa
el bit EC=1, activa el bit de Detección de Congestión o EC
(Experienced Congestion) de la cabecera IP y lo encamina a la
entidad TCP receptora
La entidad receptora TCP, al recibir dicha cabecera IP, detecta que
hay principio de congestión en el camino y activa el bit de Eco de
Notificación Explícita de Congestión (ECN-ECHO) de la cabecera
TCP y se lo envía a la entidad TCP emisora para que ésta active el
control de la congestión
La entidad emisora TCP, al recibir ECN-ECHO = 1, activa el bit de
Ventana de Congestión Reducida o CWR (Congestion Window
Reduced) de la cabecera TCP y se lo envía a la entidad TCP
receptora para indicar que ya se enterado, que ya ha activado el
control de congestión, que ya ha reducido su ritmo de transmisión y
que no es necesario que le vuelva a enviar un ECN-ECHO = 1
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
74
Esquema IP-ECN/TCP-ECN
Bit de Transporte de
Notificación Explícita de Congestión
Transmisor
ECT
1
IP
Bit de
Detección de Congestión
Router (cercano a la congestión)
ECT EC
EC
0
1
1
1
TCP
0
0
CWR
CWR
2
Receptor
1
TCP
ECN-ECHO
TCP
3
1
CWR
Bit de Ventana de
de Congestión Reducida
© Fco. Javier Yágüez García
4
Bit de Eco de
Notificación Explícita de Congestión
ARQUITECTURA Y SERVICIOS DE INTERNET
75
Problemática de la Fiabilidad TCP
 Hay aplicaciones que no toleran el retardo extremo a extremo
producido por los ACKs, los temporizadores, las
retransmisiones y controles de TCP
 Además, el control de congestión TCP reduce la tase de envío
(throughput) en el emisor
 Las retransmisiones TCP son inaceptables para aplicaciones
interactivas en tiempo real (p. ej., videoconferencias y VoIP) y
no interactivas (streaming de audio y vídeo), al incrementar el
retardo extremo a extremo
 Cada vez hay más aplicaciones sobre UDP
 Tráfico interactivo en tiempo real
• Audioconferencias, vídeoconferencias, VoIP
 Tráfico no interactivo en tiempo real
• Streaming de audio y vídeo
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
76
Protocolo UDP (User Datagram Protocol)
RFC-768, STD 0006
 Se utiliza en los siguientes escenarios:
Aplicaciones interactivas (audioconferencias,
videoconferencias, VoIP, etc.) y no interactivas
(streaming de audio y vídeo, etc.) en tiempo
real
 El intercambio de mensajes es muy escaso y los
mensajes son cortos, por ejemplo, consultas al DNS
 Los mensajes se producen regularmente y no importa
si se pierde alguno: SNMP, NTP, …
 Los mensajes se envían en una RAL del tipo Ethernet
(sin errores físicos): DHCP, SNMP, …
 Para tráfico broadcast/multicast
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
77
Protocolo UDP (User Datagram Protocol)
RFC-768, STD 0006
Transporte NO FIABLE PERO RÁPIDO
de los mensajes de aplicación encapsulados en datagramas UDP
SIN CONTROLES
SISTEMA FINAL
EXTREMO A EXTREMO
mensajes
APLICACIÓN
SISTEMA FINAL
APLICACIÓN
SERVICIO NO ORIENTADO A CONEXIÓN NO
FIABLE PERO RÁPIDO
UDP
ROUTER
IP
IP
INTERFAZ DE
RED
INTERFAZ
DE RED
Ethernet
UDP
ROUTER
…
INTERFAZ
DE RED
INTERFAZ
DE RED
…
IP
IP
INTERFAZ
DE RED
INTERFAZ DE
RED
PPP
Las unidades de datos del protocolo UDP (“PDUs UDP”)
se denominan datagramas UDP o mensajes UDP
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
78
Protocolo UDP (User Datagram Protocol)
RFC-768, STD 0006
 Protocolo muy sencillo que añade un mínimo de
sobrecarga
 Añade muy poco al servicio de IP como es
proporcionar comunicación proceso a proceso en lugar
de máquina a máquina
 SERVICIO NO ORIENTADO A CONEXIÓN NO
FIABLE
Con detección (opcional) y no recuperación de errores
físicos
Sin control (detección y recuperación) de errores lógicos
(datagramas UDP perdidos y desordenados)
Sin control de errores, flujo y congestión
 Multiplexación/Demultiplexación
 Transferencias simúltáneas en los dos sentidos (fulldúplex)
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
79
PROTOCOLO UDP
Formato de un Datagrama UDP
RFC-768, STD 0006
Longitud Total Máxima
65.535 octetos
CABECERA
DATOS
8 octetos
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
80
Formato de un Datagrama UDP
15 16
0
CABECERA
UDP
(8 octetos)
PUERTO ORIGEN
LONGITUD UDP
31
PUERTO DESTINO
SUMA DE COMPROBACIÓN
DATOS
Longitud en octetos del datagrama UDP
(cabecera + datos) =
Longitud mínima de 8 octetos (sin datos),
Longitud máxima de 65.535 octetos (pero la longitud
total debe ser menor debido a que un paquete IP tiene
una longitud máxima de 65.535 octetos)
© Fco. Javier Yágüez García
A todo el datagrama UDP
(cabecera y datos)
Uso opcional:
Si entidad UDP emisora
pone “todo a ceros” = No usar
ARQUITECTURA Y SERVICIOS DE INTERNET
81
PSEUDOCABECERA UDP
0
8
15 16
31
DIRECCIÓN IP ORIGEN
PSEUDOCABECERA
DIRECCIÓN IP DESTINO
UDP
00000000
PROTOCOLO = 17 LONGITUD DEL DATAGRAMA UDP
CABECERA UDP
DATOS (Variable)
•La pseudocabecera se antepone a la cabecera UDP (al igual que en TCP),
pero sólo a efectos de calcular el checksum, no se envía realmente
•Para no violar la jerarquía de cabeceras de protocolos puesto que las
direcciones IP que contiene pertenecen al nivel IP
•Permite a la entidad UDP (al igual que a la entidad TCP) receptora detectar
datagramas UDP mal entregados, es decir, comprobar que su nivel IP no se
ha equivocado y le ha pasado un datagrama UDP que era para otra máquina
aunque dicho datagrama UDP esté libre de errores
•El valor 17 (10001 en binario) indica que el protocolo de transporte es UDP
© Fco. Javier Yágüez García
ARQUITECTURA Y SERVICIOS DE INTERNET
82
Descargar