Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
1
I. ARQUITECTURA TCP/IP1. Protocolo IPv6 (ICMPv6)2. IP móvil en IPv4 e IPv63. Transición de IPv4 a IPv64. Encaminamiento dinámico de unidifusión y MPLS5. Multidifusión IP6. Encaminamiento dinámico de multidifusión7. TCP: Servicios opcionales (confirmación selectiva o SACK)
y control de la congestiónUDP: Servicio no orientado a conexión para transmisiones multimediaen tiempo real
8. Parámetros de calidad de servicio, modelos de calidad de servicioy multimedia en tiempo real (RTP y VoIP)
II. SERVICIOS Y TECNOLOGÍAS DE SEGURIDAD EN INTERNET1. Amenazas, servicios y mecanismos de seguridad2. Seguridad Web y correo electrónico3. Protección de las comunicaciones: Intranets y Redes privadas virtuales
ARQUITECTURA DE REDES DE COMUNICACIONESÍNDICE TEMÁTICO
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
2222
TRANSPARENCIAShttp://halley.ls.fi.upm.es/~jyaguez/libros.html
PROBLEMAShttp://halley.ls.fi.upm.es/~jyaguez/examenes.html
Arquitectura de Redes de Comunicaciones
Documentación: Tema I, Capítulo 7http://pegaso.ls.fi.upm.es/arquitectura_redes/index2.html
material
•TCP/IP Tutorial and Technical Overview, Lydia Parziale, David T. Britt ,… 8ª edición (Diciembre 2006).
Redbooks: http://www.redbooks.ibm.com/portals/solutionsLibro descargable desde Internet)
.Los RFCs que se indiquen
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
3
LOS RFC de TCP
RFC-793 Transmission Control Protocol, Darpa InternetProgram Protocol Specification, septiembre 1981RFC-1323 TCP Extensions for High Performance, 1992
Aumento de la ventana de recepción hasta 32 bitsRFC-2018 TCP Selective Acknowledgment Option, 1996
Confirmación selectivaRFC-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 RecoveryAlgorithm, 1999
http://www.rfc-editor.org/rfcsearch.html
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
4
NIVELES SUPERIORES TCP/IP
EXTREMO A EXTREMO
EXTREMO A EXTREMO
INTERFAZ DERED
APLICACIÓN
IP
TCP/UDP
INTERFAZ DE RED
IP
INTERFAZ DE RED
ROUTER(SISTEMA INTERMEDIO)
INTERFAZ DERED
APLICACIÓN
IP
TCP/UDP
INTERFAZ DE RED
IP
INTERFAZ DE RED
NIVELESSUPERIORES
NIVELESINFERIORES
NIVELESSUPERIORES
NIVELESINFERIORES
SISTEMA FINAL SISTEMA FINAL
ROUTER(SISTEMA INTERMEDIO)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
5
NIVEL DE TRANSPORTEPROTOCOLO TCP (Transmission Control
Protocol): SERVICIOS OPCIONALES (SACK) Y CONTROL DE LA CONGESTIÓN
INTERFAZ DERED
APLICACIÓN
IP
TCP
INTERFAZ DERED
APLICACIÓN
IP
TCP
INTERFAZ DE RED
IP
INTERFAZ DE RED
INTERFAZ DE RED
IP
INTERFAZ DE RED
ORIENTADO A LA CONEXIÓN(control de errores y flujo) y CONGESTIÓN
SISTEMA FINALCONTROLES
EXTREMO A EXTREMO
…
…Ethernet Ethernet
SISTEMA FINAL
ROUTER ROUTER
TCP aparte ofrece como servicios básicos: Un servicio de flujo de octetos, orientado a la conexión, multiplexado y dúplex
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
6
TRANSFERENCIAS DE FLUJO DE OCTETOS (BYTE-STREAM): Entidad TCPemisora recoge, numera, almacena y agrupa los octetos de datos o carga útil (recibidos delproceso de aplicación) en segmentos, calculando el MSS (Maximum Segment Size) para quelos 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 yal vencimiento sin confirmación se produce una retransmisión), números desecuencia (octeto de datos =número de secuencia), confirmaciones (campo de datosde cada segmento de información tiene asociado una confirmación)Físicos (detección: suma de comprobación y corrección: temporizadores yretransmisión)
Control de flujo: Mecanismo de ventana deslizante ejercido por el receptor sobreel emisor para evitar que éste desborde el buffer del receptor
MULTIPLEXADO o simultáneo a través de los números de puertoTRANSFERENCIAS SIMÚLTÁNEAS EN LOS DOS SENTIDOS (full-dúplex)CONTROL DE LA CONGESTIÓN (en Internet): Mecanismo de ventanaejercido por el emisor sobre sí mismo para evitar CONGESTIONARINTERNET o seguir desbordando el buffer de recepción IP de un router
Protocolo TCP (Transmission Control Protocol): Servicios
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
7
Desbordamientos en el buffer del receptor TCP y buffer de recepción IP de un router
Diferenciar el control de flujo TCP del controlde la congestión TCPToda entidad TCP dispone de una WT (ventanade transmisión), WR (ventana de recepción) yde una WC (ventana de congestión)
Toda entidad TCP emisora dispone de unaWT (ventana de transmisión) y de una WC(ventana de congestión)Toda entidad TCP receptora dispone deuna WR (ventana de recepción)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
8
El Control de Flujo y la Ventana de RecepciónEl control de flujo lo ejerce la entidad TCP receptora através de su WR para evitar que la entidad TCP emisoradesborde el buffer de dicha entidad TCP receptoraWR garantiza que no se inunde al receptor, ejerciendo uncontrol de flujo sobre el emisorWR controla la numeración de los octetos de datos quepuede enviar, en un momento dado, el emisor en funcióndel número de octetos libres que, en un momento dado, sepueden almacenar en el buffer de recepción de la entidadTCP receptoraWR se corresponde con una lista de números desecuencia de octetos de datos que, en un momento dado,el receptor puede aceptar y almacenarWT va variando puntualmente en fase de transferencia dedatos en función de la WR del otro extremo
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
9
El Control de la Congestión y la Ventana de Congestión
El control de la congestión lo ejerce la entidad TCP emisorasobre sí misma a través de su WC para evitar que dichaentidad TCP emisora siga desbordando el buffer de unaentidad intermedia IP en un routerEl control de congestión permite que la entidad TCP emisorabaje el ritmo de transmisión cuando ocurre un desbordamientoen el buffer de un routerWC garantiza que no se siga inundando a un router,ejerciendo un control de transmisión en el emisorWC indica el número de segmentos enviados en función de lacongestión en Internet y se calcula mediante un mecanismo oalgoritmo 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
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
10
La Transferencia de Datos y la Ventana de TransmisiónWT controla la numeración de los octetos de datos (enviados y noconfirmados) almacenados en el buffer de transmisiónWT se corresponde con una lista de números de secuencia deoctetos de datos que, en un momento dado, el emisor ha enviado sinhaber recibido confirmación
A medida que van llegando las confirmaciones, se DESACTIVAN lostemporizadores asociados y se va LIBERANDO espacio en el buffer detransmisión para dejar sitio a nuevas copias de otros octetos de datos que se deseantransmitir
El tamaño de WT viene determinado por la capacidad del receptor y lacapacidad de la red
Espacio disponible en el buffer de recepción de la entidad TCP receptoraEspacio disponible en los buffers de recepción IP de los routers intermedios entre elorigen 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
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
11
Aplicación
TCP
IP
A
EnvíoBuffer
de Transmisión(Ventana de Transmisión)
RecepciónBuffer
de Recepción(Ventana de Recepción)
Aplicación
TCP
IP
B
EnvíoBuffer
de Transmisión(Ventana de Transmisión)
RecepciónBuffer
de Recepción(Ventana de Recepción)
Primer octeto Segundo octeto Tercer octeto
Nº SEC = n Nº SEC = n+1 Nº SEC = n+2
...
BUFFER DE RECEPCIÓN
Octetos de datos procedentesde la entidad TCP emisora se recogen,y almacenan en el buffer de recepción
Cuando se llena el buffer, se entregan al proceso de aplicación
Ventana deslizante de recepción:Números de secuencia de los octetos de
datos que en un momentodado el receptor puede aceptar y almacenar
Control de los números del buffer
VENTANA DE RECEPCIÓN: Control de Flujo sin Congestión en la RedControl de flujo: Mecanismo de ventana deslizante ejercido por el receptor sobre el emisor
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
12
VENTANA DE TRANSMISIÓN: Control de Flujo Sin Congestión en la Red
Aplicación
TCP
IP
A
EnvíoBuffer
de Transmisión(Ventana de Transmisión)
RecepciónBuffer
de Recepción(Ventana de Recepción)
Aplicación
TCP
IP
B
EnvíoBuffer
de Transmisión(Ventana de Transmisión)
RecepciónBuffer
de Recepción(Ventana de Recepción)
Primer octeto Segundo octeto Tercer octeto
Nº SEC = n Nº SEC = n+1 Nº SEC = n+2
...
BUFFER DE TRANSMISIÓN
Cuando se llena el buffer, se van tomando trozos agrupándolos por segmentos y añadiéndoles una cabecera
Ventana deslizante de transmisión:Números de secuencia de los octetos de
datos que en un momentodado el emisor ha enviado sin haber
recibido confirmación
Control de los números del buffer
Octetos de datos procedentesdel proceso de aplicación
se recogen, numeran y almacenan
en el buffer de transmisión
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
13
PROTOCOLO TCP (Transmission Control Protocol): RFC-793 y RFC-1122
Formato de un Segmento TCP
CABECERA DATOS (Variable)
Maximum Segment Size (MSS) = Carga Útil = = SDU del Nivel de Aplicación = 1024 octetos (típico MSS)
Primer octeto Segundo octeto Tercer octeto
Nº SEC = n Nº SEC = n+1 Nº SEC = n+2
...
BUFFER DE TRANSMISIÓN
Octetos de datos procedentesdel proceso de aplicación
se recogen, numeran,y almacenan
en el buffer de transmisión
Cuando se llena el buffer, se van tomando trozos agrupándolos por segmentos y añadiéndoles una cabecera
Se calcula un MSS de tal forma que los datagramas IP
resultantes se correspondancon la MTU de la red de acceso
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
14
0 10 10 1232-1
0 1
INICIALMENTEDESPUÉS DE
ENVIAR 2 OCTETOS
DESPUÉS DE ENVIAR 2 OCTETOS
SIN RECIBIR ACKDESPUÉS DE RECIBIR ACK
WT =
WR =
0 1
0 1
2
0 12
3
0 12
3
INICIALMENTEDESPUÉS DE
RECIBIR 2 OCTETOSDESPUÉS DE RECIBIR 2 OCTETOS
Y PASARLOS AL NIVEL DE APLICACIÓN
Límite inferior de WT== primer octeto de datos
Nuevo límite inferior al girar WT
Se guarda copia en el buffer de recepción de los dos octetos (0 y 1)
Se gira WR para los próximos 2 nuevos octetos (2 y 3)
Se reserva espacioen el buffer de recepción
para los octetos 0 y 1
232-1 232-1 232-1
232-1 232-1 232-1 232-1
Se guarda copia en el buffer de transmisión de los dos octetos (0 y 1)
2 octetos
2 octetos
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)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
15
WR inicial = Tamaño máximo del propio buffer de recepciónPosteriormente, en fase de transferencia de datos, WR va variando puntualmenteen función de los octetos libres de su buffer de recepciónSe pasan datos al proceso de aplicación cuando se llena el buffer de recepción
• Salvo que el bit PSH (Push) =1
Límite inferior de WR = Primer octeto de datos que se espera recibir despuésdel último octeto pasado al proceso de aplicación
Se gira WR (límites inferior y superior) cuando se pasan datosal proceso de aplicación (al llenarse el buffer de recepción)
WT inicial = WR inicial del otro extremo (tamaño máximo del buffer derecepción del otro extremo)
WT va variando WT ≤ WR puntualmente en fase de transferencia de datos enfunción de la WR del otro extremo
Se gira WT (límites inferior y superior) cuando se recibeconfirmación de todos los octetos comprendidos entre ellímite inferior y superior de WT
Sincronización de WR y WT para un Correcto Control de Flujo
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
16
Formato de un Segmento TCP
CABECERATCP
Mínima por Omisión
=20 octetosMáxima=60 octetos
PUERTO ORIGEN PUERTO DESTINO
NÚMERO DE SECUENCIA
NÚMERO DE CONFIRMACIÓN (ACK)
DESP RESERVADO URG ACK PSH RST SYN FIN VENTANA
SUMA DE COMPROBACIÓN PUNTERO DATOS URGENTES
OPCIONES RELLENO
DATOS (Variable)
0 15 16 31
Primer octeto del campo de datos
del segmento de informaciónque se va a enviar = Nº de secuencia = 32 bits = Módulo 232 = 0, 1, 2, …232-1, 0, 1, …, 232-1, 0, 1…
Primer octeto del campo de datos
del siguiente segmento de información
que se espera recibir(LOS OCTETOS ANTERIORES
ESTÁN CONFIRMADOS)
SYN=1 ACK=0 Solicitud conexiónSYN=1 ACK=1 Respuesta OK!
Cantidad de octetos libresque se pueden almacenaren el buffer de recepción
Ventana deslizante de recepción:Nº de octetos de datosque el emisor de esta
información puede manejar en función del tamaño puntual de su buffer de recepción =
= 0 octetos, 1 octeto, 2 octetos hasta 216-1 octetos (65535 octetos o 16 unos)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
17
Formato de las Opciones TCPCampos de Información de Control de Longitud Variable para
Servicios AdicionalesRFC-793 y RFC-1323
8 bits 8 bits (variable)
TIPO LONGITUD DATOS OPCIÓN
Formato TLV: Tipo-Longitud-Valor (o Datos)
…
Longitud completa de la opción en octetos
(TIPO + LONGITUD + DATOS)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
18
Opciones TCP más RelevantesDescripció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)
8 10 Valor actual reloj emisor (4 octetos) +
Respuesta Eco (4 octetos)
Marca de Tiempo
… … … …
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
19
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 TCPSe especifican en la fase de establecimiento de la conexión (sólo en aquellos segmentos de control con el bitSYN = 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 confundirMSS con el tamaño del buffer de recepciónFactor de Escala de la Ventana:
Permite ampliar el campo VENTANA desde 16 bits a un máximo de 32 bitsPor omisión, el tamaño máximo de la ventana de recepción es de 216-1 octetos (65.535 octetos). Sepuede 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 alemisor de los octetos de datos de segmentos (bloques) de información no contiguos que han sido recibidoscorrectamente y EVITAR RETRANSMISIONES INNECESARIAS, Implícitamente, indica los octetos dedatos de segmentos de información que se han perdido o no han llegado todavía (“agujeros en los datos”)Marca o sello de tiempo (Timestamp):
Permite al emisor calcular el valor RTT (Round Trip Time: Tiempo de ida y vuelta de un segmento)para configurar sus temporizadores
• Establecimiento de la conexión: El emisor puede enviar esta opción con SYN = 1, ACK = 0 ypuede hacer uso de dicha opción en fase de transferencia de datos siempre y cuando hayarecibido respuesta en el establecimiento de la conexión con SYN = 1, ACK = 1 y el segmento derespuesta lleve el bit ACK =1 en la cabecera
Valor actual del reloj del emisor = Nº en milisegundos desde la medianoche usando Tiempo Universal(UT)El eco es válido si el bit ACK = 1 en la cabecera del segmentoEl receptor devuelve el mismo valor (eco) en el ACK del segmentoAsimismo, protege de errores de duplicación del NÚMERO DE SECUENCIA en conexiones de altavelocidad y, por tanto, permite reconocer octetos distintos con el mismo número de secuencia en lamisma conexión cuando los números de secuencia dan la vuelta (0, 1, 2, …, 232-1, 0, 1…) durante eltiempo de vida de dicha conexión
Tipo =8 Longitud = 10 Valor actual del reloj emisor Eco del valor actual del reloj emisor
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
20
Gestión de temporizadores en TCPNo es lo mismo que el destino esté ubicado localmente en la misma Etherneto WiFi que disperso geográficamente por InternetLa elección de valores adecuados es mucho más compleja en el nivel de transporte queen el nivel de enlace
Diferencias en capacidad y retardo de unas conexiones TCP a otrasOscilaciones debidas a la presencia de routers y situaciones de congestión queestán fuera de su controlAún en situaciones de control, los routers pueden tener largas colas de datagramasIP que atender, los enlaces pueden ser de diferentes velocidades y retardos y la rutapuede variar durante la conexión
La elección de un valor adecuado tiene una consecuencia directa en elfuncionamiento eficiente de TCP
Si el temporizador es demasiado alto, el emisor esperará innecesariamente en ciertos casos por ACKs quenunca llegaránSi el temporizador es demasiado bajo se producirán retransmisiones innecesarias de segmentos quehabían sido correctamente recibidos
Manejar los temporizadores (timers o timeouts) es siempre complejo porque hay quedeterminar “aproximadamente” el periodo de tiempo existente desde que seenvía un segmento de información o datos hasta que se recibe su ACK, esdecir, el tiempo de ida y vuelta (RTT: Round Trip Time)Por todo lo anterior, los valores del temporizador se establecen mediante algoritmosautoadaptativos que dinámicamente ajustan los valores al estado de la red, según espercibido éste por la entidad de transporte emisora
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
21
Temporizadores: Valores de TimeoutEstándar de Facto en las Implementaciones TCP
Algoritmo autoadaptativo de Karnpara el cálculo del RTT (Round TripTime)
Se toma una muestra RTT de cada segmento deinformación transmitido (opción Marca de Tiempo)Se obtiene un promedio de dichas muestrasSe le añade un margen de seguridad
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
22
Fase de Establecimiento de una Conexión TCPIntercambio de 3 segmentos (con opción MSS)
RECORDATORIO
TCP “B”TCP “A”Se confirman los números de
secuencia, las WR y las opciones deseadas (p.ej., MSS)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
23
Fase de Establecimiento de una Conexión TCPIntercambio de 3 segmentos sin opciones
Con VENTANA en “A” de 300 octetos y en “B” de 900 octetosRECORDATORIO
TCP “A” TCP “B”
Ventana inicial:• Control de flujo
impuesto por el receptor
• La determina el receptor al establecer la conexión
Nº de secuencia
que desea usar la entidad “A”
Tamaño máximo De VENTANA DE RECEPCIÓN
que permite “A”
Tamaño máximo De VENTANA DE RECEPCIÓN
que permite “B”
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
24
Ejemplo de Transferencia de Datos sin Errores
TCP “A” TCP “B”
Transmisión unidireccional de datos (de “A” a “B”) sin erroresy con VENTANA en “A” de 300 octetos y en “B” de 900 octetos
RECORDATORIO
…
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
25
Ejemplo de Transferencia de Datos con ErroresTransmisió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 octetosRECORDATORIO
time-out
time-out
TCP “A” TCP “B””A” transmite 900 octetos agrupados
en 3 segmentos pendientes de confirmación
”B” ante la llegada de los300 primeros octetos
procede a confirmarlosNo 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
“B” vuelve a confirmarlos 300 primeros octetos
(no CONF=903 porquese confirmarían los octetos
del 2º segmento)
No produce una retransmisión(retransmisión=timeout) sino una
desactivación de los timers y unaeliminación en el buffer de
de transmisión de la copia delos 300 octetos del segundo
y tercer segmento
Mientras no se recibael segmento perdido,se sigue indicando,
repetidamente, que se esperan sus octetos de datos, a la llegada
correcta de cualquier otro segmento de datos
CONFIRMACIÓN DUPLICADAAnte la llegada correcta de bloques
no contiguos de octetos == no produce ningún efecto en el emisorde desactivación de timer y eliminación
de la copia de octetos porque se ha hecho antes
No producen ningún efecto
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
26
Problemática TCP con Segmentos de Información Perdidos o con Errores de Transmisión
Segmentos con errores físicos de transmisión: Redes inalámbricas o radio enlacesmóviles que pueden provocar pérdidas de paquetes a ráfagas
Altas tasas de pérdidas de bits causadas por las pobres condiciones de propagaciónSegmentos perdidos (DATOS y/o ACKs): En redes fijas (o de cable: Ethernet, líneasserie o anillos en fibra óptica) la mayoría de las pérdidas es por congestión IP en losrouters (y en menor medida por errores de transmisión detectados en cabeceras IPv4y cabeceras TCP/UDP eliminándose los paquetes en el nivel de red y transporte)
En los sistemas finales se aplica un control de flujo para evitar pérdidas de datosextremo a extremo
Mientras no se reciba correctamente el segmento de información perdido (o que hayallegado con errores de transmisión), se sigue indicando, repetidamente, que se continúaa la espera de sus octetos de datos ante la posterior llegada correcta de cualquier otrosegmento de información no contiguoSi no se confirman los octetos de datos de los posteriores segmentos de información nocontiguos que han llegado correctamente, se provoca el vencimiento de sustemporizadores en el lado emisor y su retransmisiónPara evitar retransmisiones innecesarias se introduce la opción deconfirmación selectiva (SACK: Selective Acknowledgment) que confirma losoctetos de datos de segmentos de información no contiguos que han sidorecibidos correctamente especialmente en situaciones previas de congestión opérdidas de paquetes IPv4 o segmentos TCP por errores de transmisión
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
27
Tipos de Confirmaciones (ACKs)CONFIRMACIÓN (NO DUPLICADA O REPETIDA):
Desactivación del temporizador del segmento de información que ha provocado dichaconfirmaciónEliminació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 anteriorACK duplicadoPeligro de que venza el temporizador del segmento de información no contiguo que haprovocado dicha confirmación repetida Y SE REALICE UNA RETRANSMISIÓNINNECESARIACuando al destino llegan segmentos TCP fuera de orden, el receptor transmite ACKsduplicados o repetidos reconociendo que se han recibido segmentos no contiguos o fuerade orden
CONFIRMACIÓN DUPLICADA O REPETIDA CON SACK(Selective Acknowledgment):
Desactivación del temporizador del segmento de información nocontiguoNo hay retransmisión innecesariaEliminación en el buffer de transmisión de la copia de los octetos de datosno contiguos confirmados
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
28
TCP SACK: TCP de Reconocimiento Selectivo o Selective Acknowledgment
(SACK)Definido en el RFC-2018 y, posteriormente,extendido en el RFC-2883Se recomienda la opción SACK cuando haymúltiples pérdidas de segmentos TCP
Por congestiones en los routers IPPor errores físicos en el nivel de red (IPv4) y transporte(TCP/UDP)
Para evitar innecesarias retransmisiones delos octetos de datos de segmentos deinformación no contiguos que ya fueronentregados al receptor
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
29
Confirmación selectiva (SACK: Selective Acknowledgment): RFC-2018 y RFC-2883
Dos OpcionesPara poder hacer uso de la opción Tipo 5 SACK en fase detransferencia de datos hay que indicarlo previamente con laopción Tipo 4 en fase de establecimiento de la conexión TCPSe indica mediante la opción Tipo 4 TCP Sack-Permitted en la fasede establecimiento de la conexión TCP en un segmento SYN = 1Mediante la opción Tipo 5 TCP Sack-Permitted se informa alemisor de bloques no contiguos de octetos de datos que han sidorecibidos correctamente y, por tanto, en dónde puede haber“agujeros en los datos”. Esta opción provoca la cancelación en elemisor de los temporizadores de los segmentos que sabe que hanllegado correctamente al receptor y la eliminación de la copia delos correspondientes octetos de datos en el buffer de transmisiónSi el receptor no ha recibido la opción Tipo 4 TCP Sack-Permitted en el establecimiento de la conexión, no debe usar laopción Tipo 5 TCP Sack-Permitted en la fase de transferencia dedatos
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
30
Un Ejemplo de un Paquete SACK
TCP “A” TCP “B”
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
“A” transmite 900 octetos agrupadosen 3 segmentos pendientes de confirmación
“B” ante la llegada de los300 primeros octetos
procede a confirmarlos
“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)
…
PRIMER OCTETO DE DATOS RECIBIDO DELPRIMER SEGMENTO DE INFORMACIÓN NO
CONTIGUO QUE HA HECHO ENVIAR EL PRIMER PAQUETE SACK
PRIMER OCTETO DE DATOS QUE SE ESPERARECIBIR DEL SIGUIENTE SEGMENTO
DE INFORMACIÓN NO CONTIGUOY CONSECUTIVO
No produce una retransmisión(retransmisión=timeout) sino una desactivación del timer y unaeliminación en el buffer de
de transmisión de la copia delos 300 primeros octetos
SEGMENTO CONTIGUO (al último recibido correctamente)
SEGMENTO NO CONTIGUO
Evita retransmisiones innecesarias, confirmando los
octetos de datos de segmentos de información no contiguos
recibidos correctamente (tercer segmento)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
31
“X1” (32 bits) = BORDE IZQUIERDO DEL BLOQUE “1” = PRIMER NÚMERO DESECUENCIA 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 deinformación no contiguos recibidos sean consecutivos
“Y1” (32 bits) = BORDE DERECHO DEL BLOQUE “1” = NÚMERO DE SECUENCIASIGUIENTE AL ÚLTIMO NÚMERO DE SECUENCIA DEL BLOQUE “1” = PRIMEROCTETO DE DATOS QUE SE ESPERA RECIBIR DEL SIGUIENTE SEGMENTO DEINFORMACIÓN NO CONTIGUO Y CONSECUTIVO
• Si los octetos de datos recibidos, de los siguientes segmentos de información nocontiguos, son consecutivos, entonces, se agrupan éstos en el mismo bloque X1-Y1
TIPO=5 LONGITUD(variable) DATOS OPCIÓN
X1 – Y1
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
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
32
TCP “A” TCP “B”
Un Ejemplo de un Paquete SACK con “1 Bloque”Transmisión unidireccional de datos (de “A” a “B”) con errores
haciendo uso de SACK
¿Respuestas de “B”?
¿Cuándo se retransmite el segmento SEC=22550, Datos=431?
CONFIRMACIONES A SEGMENTOS NO CONTIGUOS Y CONSECUTIVOS
…
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
33
(SOLUCIÓN)TCP “A” TCP “B”
VENCIMIENTODEL
TEMPORIZADOR
Se intenta agrupar el máximo de octetos
de datos consecutivos en cada paquete SACK
CONFIRMACIONES A BLOQUESNO CONTIGUOS CONSECUTIVOS
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
…
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
34
Extensión con “N” Bloques del Paquete SACK para Segmentos No Contiguos y No Consecutivos (Con Pérdidas)
TIPO=5 LONGITUD(variable) DATOS OPCIÓN
X1 – Y1 Xn – Yn…Se pueden enviar hasta 4 bloques NO CONSECUTIVOS SACK (34 octetos) sise emplea casi todo el espacio del campo de opciones TCP (máximo de 40octetos) para la opción SACK
• Se recuerda que si los nuevos octetos de datos son consecutivos con los anterioresya 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 elbuffer de recepción. Así el emisor tiene información actualizada del estado de lared y del estado de la cola de recepción
• Si llega un nuevo segmento (p. ej., datos = 6500-7000) y se pueden agrupar susoctetos con otro u otros bloques ya recibidos, entonces, se agrupan todos los octetosque se puedan en un primer 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 ordenarbitrario
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
35
Extensión del Paquete SACK para Segmentos No Contiguos y No Consecutivos (Con Pérdidas)
TIPO=5 LONGITUD(variable) DATOS OPCIÓN
X1 – Y1 Xn – Yn…
“X1” (32 bits) = BORDE IZQUIERDO DEL BLOQUE “1” = PRIMER NÚMERO DESECUENCIA DEL BLOQUE “1” = PRIMER OCTETO DE DATOS RECIBIDO DEL SEGMENTODE 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 OCTETODE DATOS QUE SE ESPERA RECIBIR DEL SIGUIENTE SEGMENTO DE INFORMACIÓN NOCONTIGUO 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 = PRIMERNÚMERO DE SECUENCIA DEL BLOQUE “n” = RECORDATORIO DEL PRIMER OCTETO DEDATOS YA RECIBIDO DE UN SEGMENTO DE INFORMACIÓN NO CONTIGUO Y NOCONSECUTIVO“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 DELSIGUIENTE SEGMENTO DE INFORMACIÓN NO CONTIGUO Y NO CONSECUTIVO
Informa del segmento recibido más recientemente
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
36
TCP “A” TCP “B”
Un Ejemplo de un Paquete SACK AmpliadoTransmisión unidireccional de datos (de “A” a “B”) con errores
haciendo uso de SACK
¿Respuestas de “B”?
¿Cuándo se retransmite el segmento SEC=22550, Datos=431?
CONFIRMACIONES A SEGMENTOS NO CONTIGUOS Y NO CONSECUTIVOS
…
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
37
TCP “A” TCP “B”
VENCIMIENTODEL
TEMPORIZADOR
Si hay espacio en el campo de opciones TCP, se pueden
enviar hasta 4 bloques
SACK ampliadocon más bloquesde información
CONFIRMACIONES A BLOQUESNO CONTIGUOS
NO CONSECUTIVOS
(SOLUCIÓN)…
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
38
Asumiendo que la entidad emisora TCP “A” de C1 transmite una ráfaga de8 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 segmentosde 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ónEl primer octeto de datos que espera recibir la entidad receptora TCP “B”de C2 es el 5000El primer segmento de información se pierde pero los 7 restantes se recibenLas confirmaciones llegan a C1 en el momento adecuado
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
39
SEGMENTO ENVIADO(SEC)
Nº DE CONFIRMACIÓN(ACK)
DATOS OPCIÓN SACK(BLOQUE SACK)
5000(datos=500)
5500(datos=500)
5000 5500-6000
6000(datos=500)
5000 5500-6500
6500(datos=500)
5000 5500-7000
7000(datos=500)
5000 5500-7500
7500(datos=500)
5000 5500-8000
8000(datos=500)
5000 5500-8500
8500(datos=500)
5000 5500-9000
1
2
3
4
5
6
7
8
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
40
Asumiendo que la entidad emisora TCP “A” de C1 transmite una ráfaga de8 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 tablaasociando 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ónEl primer octeto de datos que espera recibir la entidad receptora TCP “B” de C2es el 5000Se pierden los segmentos segundo, cuarto, sexto y octavo pero los restantes se recibenDespué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ónLas confirmaciones llegan a C1 en el momento adecuado
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
41
SEGMENTO ENVIADO
(SEC)
Nº DE CONFIRMACIÓN(ACK)
DATOS OPCIÓN SACK
(PRIMER BLOQUE SACK)
DATOS OPCIÓN SACK
(SEGUNDO BLOQUE SACK)
DATOS OPCIÓN SACK
(TERCER BLOQUE SACK)
5000(datos=500)
5500
5500(datos=500)
6000(datos=500)
5500 6000-6500
6500(datos=500)
7000(datos=500)
5500 7000-7500 6000-6500
7500(datos=500)
8000(datos=500)
5500 8000-8500 7000-7500 6000-6500
8500(datos=500)
6500(datos=500)
5500 6000-7500 8000-8500
5500(datos=500)
7500 8000-8500
1
2
3
4
5
6
7
8
4
2(agrupa)
(agrupa)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
42
Congestión en InternetRFC-5681: TCP Congestión Control
Congestión = Pérdida de 1 o más paquetes o datagramas IPCausa posible: Desborde del buffer de la cola del interfaz de salidade un ROUTER
Exceso de tráfico de entrada en alguna o algunas redes de Internet: Tasas depaquetes de entrada superan las capacidades de los enlaces salida
• La situación se complica si los enlaces de salida son de menorcapacidad que los enlaces de entrada
En principio, no se puede conocer el estado de todos los sistemas intermediosCuando los paquetes llegan a la parte congestionada de la red, como elrouter de acceso no puede aceptar todo el tráfico entrante,empezará a acumularlos en su buffer de la cola del interfaz desalida y cuando éste se llene, empezará a descartarBasta que uno de los enlaces del trayecto se vea afectado por la congestión paralimitar el tráfico en todo el camino y, por tanto, el rendimiento de lacomunicación entre los sistemas finalesLas aplicaciones se bloquean o dejan de funcionarLa 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 entidadTCP emisora retransmitirá por timeout aquéllos que no hayan sido confirmados
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García 43
IP IPIPIP
Proceso Caudal
IP
Descarte del último
Pérdidas de Paquetes en los Routers
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
buffer de la cola del interfaz de salida
enlacesde entrada
enlacesde entrada enlace
de salida
…
…
La congestión en Internet es la pérdida de 1 o más paquetes IPdebido al desborde del buffer de la cola del interfaz de salida
de un router cuando las tasas de entrada superan las capacidades de salida
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
44
Flujo y Congestión: Conceptos DiferentesRECORDATORIO
La VENTANA DE RECEPCIÓN WR garantiza que no se inundeal receptor ejerciendo un CONTROL DE FLUJO sobre el emisorSin embargo, los problemas podrían estar en Internet: Muchasveces el “cuello de botella” está en la red y no en el receptor
Los buffers de las colas de salida de los routers pueden desbordarseAdemás, del CONTROL DE FLUJO necesitamos un CONTROLDE CONGESTIÓN¿Cómo notificar a la entidad TCP emisora de que hay una saturación en algúnpunto del trayecto y de que debe bajar el ritmo de transmisión?
Respuesta: Mediante una VENTANA DE CONGESTIÓN WCque indica el número de segmentos que el emisor puedeenviar en un momento dado sin congestionar a ningúnrouter en Internet
La WC actúa simultáneamente y en paralelo con WREn cada momento, el emisor tomará en consideración la más pequeña delas 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 )
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
45
La WR se notifica al emisor por el receptor: ELCONTROL DE FLUJO LO EJERCE LA ENTIDADTCP RECEPTORALa WC la calcula el emisor a partir de la cantidad deretransmisiones (pérdidas de segmentos TCP o“timeouts”) que tiene que realizar: EL CONTROL DELA CONGESTIÓN LO EJERCE LA ENTIDAD TCPEMISORA
El emisor va tanteando la red, transmitiendo tan rápidocomo sea posible hasta que se produzca un “timeout”, apartir 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 yretransmisión), repitiendo de nuevo el proceso
Flujo y Congestión: Conceptos Diferentes
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
46
Mecanismos de Control de la Congestión RFC-5681
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)
Implemetados en cualquier distribución actual TCP/IPy 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
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
47
Con SS se transmiten segmentos de información de formaexponencial (1, 2, 4, 8, ...) al ritmo al que se reciben los ACK desdeel otro extremo
WC , que SE MIDE EN SEGMENTOS (1 segmento = 1 MSS, por omisión,de 1Kbyte o 1024 octetos), crece exponencialmente sólo si todos lossegmentos de información enviados han sido confirmados
• Si hay un ACK retrasado, el incremento, en el tamaño de WC, no esexponencial
Se denomina comienzo lento porque se empieza a transmitir lentamente,primero 1 segmento, luego 2 segmentos y, así, sucesivamente; pero enrealidad se transmite muy rápido (exponencialmente): 1, 2, 4, 8, 16, 32, 64) yen 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 elvalor máximo por omisión de TCP para WR y que coincide con el VALORINICIAL DEL UMBRAL DE CONGESTIÓN o UMBRAL DE PELIGRO oLÍMITE DE CRECIMIENTO DE WC impuesto por TCP, el cual vavariando posteriormente en función de la congestión en Internet
Mecanismo de Control de la CongestiónComienzo Lento o SS (Slow Start)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
48
Inicio de la Fase de Transferencia de Datos con Comienzo Lento o SS (Slow Start): Sin Congestión en la Red
ACK
ACKs
ACKs
TCP “A” TCP “B”
Con SS se envían segmentos de informacióna la red de forma exponencial (1, 2, 4, 8, etc.)
al ritmo al que se reciben los ACK desde el otro extremo
…
WC = 1
WC = 2
WC = 4
Si hay un ACK retrasadoel incremento en el
tamaño de la ventana es menor que la potencia de 2
Cada ráfaga confirmadaduplica WC
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
49
Comienzo Lento o SS (Slow Start) Sin Congestión en la Red
WC se inicializa a 1 segmento o 1 MSS de 1 Kbyte (1024 octetos)
A su vez, p.ej., WR = 65.535 octetosTodos los segmentos tienen
un MSS por omisión = 1024 octetos = 1Kbytey 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ían2 segmentos y se activan 2 timers.
Si llegan los ACK a tiempoWT = WC = 4 Kbytes y se envían
4 segmentos y se activan 4 timers.WC va creciendo
EXPONENCIALMENTEduplicá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)
…
1ª interacción
2ª interacción
3ª interacción
4ª interacción
WC SE MIDE EN SEGMENTOS con 1 MSS, por omisión, de 1Kbyte o 1024 octetos. Por
tanto, 1 segmento = 1024 octetos
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
50
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 (límite de crecimiento)máximo impuesto por TCP inicialmente para WR de 65.535 octetosEl 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 nuevoumbral de congestión, que toma como valor la mitad del tamaño actual deWC . A su vez, WC se reduce de una manera drástica al valor inicial de 1segmento. Ahora, WC empieza a crecer exponencialmente como antes (WC= 1, 2, 4, 8, …, ) pero sólo hasta el nuevo umbral de congestión dondepermanece aunque no haya pérdidas
Nuevo umbral de congestión o límite de crecimiento = WC (actual)/2WC = 1 (y, luego, 2, 4, 8, …)
Reducción rápida y significativa del tráfico para que el router se recupereMientras el tamaño máximo de WC permanezca en el umbral de congestión, nose enviará una ráfaga de mayor longitud, sin importar la cantidad de espaciode WR ofrecida por el receptor en el supuesto de ser superior
Mecanismo de Control de la CongestiónComienzo Lento o SS (Slow Start)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
51
Mecanismo de Control de la CongestiónPrevención de la Congestion o CA (Congestion Avoidance)
Para aumentar el rendimiento en latransferencia se combina SS y CA con elobjetivo de seguir transmitiendo a partir dedonde SS finaliza, es decir, desde el nuevoumbral de congestión calculado en SSIncrementando WC LINEALMENTE (de “1 en 1”)desde el nuevo umbral hasta que se supere el tamañoactual de WR en el otro extremo TCP (control de flujo) oel buffer de algún router (vencimiento de temporizador),repitiéndose el proceso
El objetivo es no quedarse bloqueado en el nuevoumbral (SS) sino seguir transmitiendo lentamentedesde dicho nuevo umbral dando tiempo a que elrouter se recupere
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
52
Funcionamiento Conjunto de SS y CA para Aumentar el Rendimiento de la Transferencia
1. WC = 1 (inicialmente 1 MSS o 1 segmento 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, …, va creciendo exponencialmente hasta superar:
La WR actual en el otro extremo TCP (WT = WR y se establece control de flujo)El valor inicial del umbral de congestión o umbral de peligro (límite de crecimiento) máximoimpuesto por TCP para WR de 65.535 octetosEl buffer de algún router y se produzca la primera pérdida
4. Cada vez que se detecta una pérdida se obtiene un nuevo umbral de congestión opeligro, en un valor igual a la mitad del tamaño actual de WC. A su vez, WC sereduce de una manera drástica al valor inicial de 1 segmento. Ahora, WC empieza acrecer como antes pero sólo hasta el nuevo umbral de congestión
5. A partir del nuevo umbral, se aplica CA y se incrementa WClinealmente de “1 en 1” hasta:» Superar el tamaño de WR, momento a partir del cual se aplica
un control de flujo. En este punto WC dejará de crecer y permaneceráconstante mientras no ocurran más pérdidas y WR no cambie detamaño
» Una nueva pérdida (congestión), momento a partir del cual seaplica de nuevo SS, obteniéndose un nuevo umbral de congestión, en unvalor igual a la mitad del tamaño actual de WC. A su vez, WC se reduce deuna manera drástica al valor inicial de 1 segmento. Ahora, WC de nuevoempieza a crecer exponencialmente, pero sólo hasta el nuevo umbral decongestión a partir del cual se vuelve a aplicar CA
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
53
Prevención de la Congestión (Congestion Avoidance) y Comienzo Lento (Slow Start)
Objetivo de cada algoritmo:Comienzo Lento o SS (Slow Start): Tantear la red,transmitiendo, tan rápido como sea posible, hasta que seproduce una congestión, momento a partir del cual se calculael nuevo umbral, se reduce WC = 1 y se transmiteexponencialmente hasta el nuevo umbral
Prevención de la Congestión o CA (CongestionAvoidance) = Una vez que se ha producido la congestión, yen combinación con SS, sigue transmitiendo linealmente apartir de donde SS finaliza (nuevo umbral de congestión),dando tiempo a que el router se recupere
Funcionamiento conjunto
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
54
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)
FASEUMBRAL DE
CONGESTIÓN en KBytes
WC en KBytes
(VENTANA DE CONGESTIÓN)
Primera 64 segmentos (valor inicial)
Segunda
Tercera
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
55
FASEUMBRAL DE
CONGESTIÓN en KBytes
WC en KBytes
(VENTANA DE CONGESTIÓN)
Primera 64 (valor inicial) 1,2,4,8,16,32
Segunda 16 1,2,4,8,16,17,18,19,20,21
Tercera 10,5 1,2,4,8,10,11,12,13,14,15,16,17,18,19,20,21
A partir del umbral =16, WC se incrementa de 1 en 1
A partir del umbral =10,5, WC se incrementa de 1 en 1
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)
Se produce un timeout cuando WC = 32
SS
SS CA
Umbral de congestión = 10 porque si se envían 11 segmentos > 10,5
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
56
2 Tipos de Retransmisiones TCPEn las implementaciones actuales TCP, hay unaRETRANSMISIÓN si:
Expira un temporizador de retransmisión= PÉRDIDA SEGURA DE SEGMENTO =Alta seguridad de que haya congestión enInternetLlegan 3 CONFIRMACIONES (ACKs)duplicadas = PÉRDIDA PROBABLE DESEGMENTO = No hay seguridad de que hayacongestión en Internet “PERO, POR SIACASO”, no se espera al vencimiento deltemporizador y se aplica el mecanismo deRetransmisión Rápida
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
57
2 Tipos de Control de la CongestiónSi 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 yPrevención de la Congestión) A PARTIR DE UN“TIMEOUT”
Si la detección de debe a 3 ACKs duplicados = BAJASEGURIDAD DE CONGESTIÓN y, en principio, se aplicaRETRANSMISIÓN RÁPIDA
CONTROL DE LA CONGESTIÓN (Prevención de laCongestión) A PARTIR DE 3 ACKs DUPLICADOS queimplica como ventaja adicional una recuperación másrápida del potencial segmento de información perdido sinesperar a que expire su temporizadorPuede ser que a lo mejor no se ha perdido el segmento, esdecir, no hay congestión y no es necesario que WC = 1
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
58
RETRANSMISIÓN
3 ACKs duplicados = 4 ACKs idénticos en secuencia
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 duplicadossignifica que se ha perdido 1 segmento
No se espera a que se “dispare “el temporizador de retransmisión de “b”.
Si se reciben 3 ACKs duplicados seguidos, retransmitir de inmediato
Si se han recibido 3 ACKshay una probabilidad baja de congestión, se puede
haber perdido un segmentopero 3 segmentos ya han llegado
ya que se han recibido 3 ACKs
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
59
Retransmisión RápidaNo es un mecanismo estricto de control de lacongestión en InternetEs un mecanismo de retransmisión de laforma más rápida posible (sin esperar elvencimiento del temporizador) de unsegmento de información y que, posiblemente(no es seguro), se ha perdido debido a unapresumible congestión en un router por lallegada de 3 confirmaciones duplicadasPero en combinación, a su vez, con elmecanismo de Prevención de la Congestión(CA) da origen a un nuevo mecanismo decontrol de la congestión denominadoRecuperación Rápida (Fast Recovery)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
60
Mecanismo de Control de la Congestión:Recuperación Rápida (Fast Recovery)
Si la congestión se debe a 3 ACKs DUPLICADOS= Se hace una Recuperación Rápida =Retransmisión rápida y CA (a partir delnuevo umbral)• Se retransmite inmediatamente el segmento afectado
(RETRANSMISIÓN RÁPIDA), se calcula el nuevo umbral yse comienza directamente en una nueva fase CA a partir delnuevo umbral (sin comenzar a crecer exponencialmente hasta elumbral por SS y, luego, linealmente por CA)
• P. ej., si se han recibido 3 ACKs, se calcula el nuevo umbral =6, se retransmite inmediatamente el segmento afectado y secomienza 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 esnecesario que WC = 1)
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
61
Ejemplo de Recuperación Rápida: Se produce “timeout” cuandoWC = 20 segmentos y el umbral de congestión = 16 segmentos.
Posteriormente, se reciben 3 ACKs cuando se envían 12 segmentos
FASE UMBRAL DE CONGESTIÓN
WC máxima en segmentos
(VENTANA DE CONGESTIÓN) =32
Primera 16 1, 2, 4, 8, 16, 17, 18, 19, 20 (timeout)
Segunda 10 1, 2, 4, 8, 10, 11, 12 (3 ACKs)
Tercera 6 7, 8, 9, …
SS CA…
SS CA…
CA …
En un momento anterior, WC =32, se produjo timeout y el nuevo umbral de
congestión pasó a valer 16
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
62
Implementaciones TCPRFC-793, STD 0007 (1981):
TCP Sin control de congestiónRFC-5681 (1999):
TCP con control de la congestiónImplementació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)Reno optimizado TCP New Reno es el protocolo por omisión que se encuentra implementado en la mayoría de las distribuciones TCP/IP e incluye los cuatro mecanismos de control de la congestión
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
63
2 Notificaciones de Congestion en TCPNotificació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 decongestió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, elrouter señaliza al receptor antes de que los buffers se llenen
– Despúes, el receptor avisa al emisor y éste disminuye el ritmo deenví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 deataque a un router). Además, no existe el mensaje ICMPv6 de frenadoen el origen
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
64
DATAGRAMA IPv4
VERSIÓN
RELLENO
0
(TTL)
000 R C F 00
4 4 8 16
CABECERA
TIPO DE SERVICIO
LONGITUD TOTAL
IDENTIFICADOR DF
MF DESPLAZAMIENTO
TIEMPO DE VIDAPROTOCOLO
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
OPCIONES
DATOS
LongitudCabecera
SUMA DE COMPROBACIÓN(CABECERA)
Los 2 bits de menor orden del campo ToS de la cabecera IPv4 se usan para la notificación explícita de congestión
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
65
VERSIÓN
RELLENO
0
(TTL)
4 4 816
CABECERA
TIPO DE SERVICIO
LONGITUD TOTAL
IDENTIFICADOR DF
MF DESPLAZAMIENTO
TIEMPO DE VIDAPROTOCOLO
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
OPCIONES
DATOS
LongitudCabecera
SUMA DE COMPROBACIÓN(CABECERA)
Para control de la congestión
ECT
ECDSCP
Differentiated Services Code Point ECT (Explicit Congestion Notification) Capable Transport =
Bit de Transporte de Notificación Explícita de CongestiónEC (Experienced Congestion) = Bit de Detección de Congestión
Punto de Código de Servicios Diferenciados
Cabecera IPv4:DSCP-ECN
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
66
Cabecera Fija IPv6:DSCP-ECN
Versión Etiqueta de flujo (20 bits)
Longitud de la carga útil Cabecerasiguiente
Límite de saltos
0 4 31
Dirección de origen (16 octetos)
Dirección de destino (16 octetos)
40octetos
12
xxxxxxxx
Differentiated Services Code Point
Prioridad (8bits)
Punto de Códigode Servicios Diferenciados
ECT/EC
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
67
Formato de un Segmento TCP-ECN (Explicit Congestion Notification)
PUERTO ORIGEN PUERTO DESTINO
NÚMERO DE SECUENCIA
NÚMERO DE CONFIRMACIÓN (ACK)
DESPRESERVADO
4 BITSURG ACK PSH RST SYN FIN VENTANA
SUMA DE COMPROBACIÓN PUNTERO URGENTE
OPCIONES RELLENO
DATOS (Variable)
0 15 16 31
ECN
CWR
Congestion Window Reduced = = Bit de Ventana de Congestión Reducida
Explicit Congestion Notification-Echo = = Bit de Eco de Notificación Explícita de Congestión
Los 2 bits de menor orden del campo RESERVADO de la cabecera TCP se usan para el control de la congestión
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
68
El uso de ECN en fase de transferencia de datos obligaa indicarlo previamente en fase de establecimiento de laconexión TCPEl EMISOR activa los 2 bits (CWR y ECN-ECHO) enel segmento de solicitud de establecimiento de laconexión y el RECEPTOR activa el bit ECN-ECHO enel 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)
Cabecera TCP-ECN
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
69
Control de la Congestion en TCPMetodología por Señalización Explícita ECN (ExplicitNotification Congestion): RFC-3168 y RFC-2884
El emisor activa el bit de Transporte de Notificación Explícita deCongestión o ECT (ECN Capable Transport) de la cabecera IPsolicitando bit de Eco de Notificación Explícita de Congestión(ECN) para dicho paquete a cualquier router que detecte congestiónEl router, al empezar a acercarse a su umbral de congestión, activael bit EC=1, activa el bit de Detección de Congestión o EC(Experienced Congestion) de la cabecera IP y lo encamina a laentidad TCP receptoraLa entidad receptora TCP, al recibir dicha cabecera IP, detecta quehay principio de congestión en el camino y activa el bit de Eco deNotificación Explícita de Congestión (ECN-ECHO) de la cabeceraTCP y se lo envía a la entidad TCP emisora para que ésta active elcontrol de la congestiónLa entidad emisora TCP, al recibir ECN-ECHO = 1, activa el bit deVentana de Congestión Reducida o CWR (Congestion WindowReduced) de la cabecera TCP y se lo envía a la entidad TCPreceptora para indicar que ya se enterado, que ya ha activado elcontrol de congestión, que ya ha reducido su ritmo de transmisión yque no es necesario que le vuelva a enviar un ECN-ECHO = 1
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
70
Esquema IP-ECN/TCP-ECN
1
TCP
ECT EC
1 0IP
CWR
0
ECT EC
CWR
2
1 1
0
3
ECN-ECHO
1
4CWR
1
Transmisor Router (cercano a la congestión)
Receptor
Bit de Transporte de Notificación Explícita de Congestión Bit de
Detección de Congestión
Bit de Eco de Notificación Explícita de Congestión
Bit de Ventana de de Congestión Reducida
TCP
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
71
Problemática de la Fiabilidad TCPHay aplicaciones que no toleran el retardo extremo a extremoproducido por los ACKs, los temporizadores, lasretransmisiones 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 aplicacionesinteractivas en tiempo real (p. ej., videoconferencias y voz sobreIP) al incrementar el retardo extremo a extremoCada vez hay más aplicaciones sobre UDP
Tráfico interactivo en tiempo real• Audioconferencias• Vídeoconferencias• VoIP
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
72
Se utiliza en los siguientes escenarios:Aplicaciones interactivas (audioconferencias,videoconferencias, VoIP, etc.) y nointeractivas (streaming de audio y vídeo, etc.)en tiempo realEl intercambio de mensajes es muy escaso y losmensajes son cortos, por ejemplo, consultas al DNSLos mensajes se producen regularmente y no importasi 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
Protocolo UDP (User Datagram Protocol)RFC-768, STD 0006
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
73
INTERFAZ DERED
APLICACIÓN
IP
UDP
INTERFAZ DERED
APLICACIÓN
IP
UDP
INTERFAZ DE RED
IP
INTERFAZ DE RED
INTERFAZ DE RED
IP
INTERFAZ DE RED
SERVICIO NO FIABLE PERO RÁPIDO
SISTEMA FINALSIN CONTROLES
EXTREMO A EXTREMO
…
…Ethernet PPP
SISTEMA FINAL
ROUTER ROUTER
Protocolo UDP (User Datagram Protocol)RFC-768, STD 0006
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
74
Protocolo muy sencillo que añade un mínimo desobrecargaAñade muy poco al servicio de IP como es proporcionarcomunicación proceso a proceso en lugar de máquina amáquinaSERVICIO NO ORIENTADO A CONEXIÓN
Con detección (opcional) y no recuperación de errores físicosSin control (detección y recuperación) de errores lógicos(datagramas UDP perdidos y desordenados)Sin control de flujo y congestión
Multiplexación/DemultiplexaciónTransferencias simúltáneas en los dos sentidos(full-dúplex)
Protocolo UDP (User Datagram Protocol)RFC-768, STD 0006
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
75
Formato de la Cabecera UDP
PUERTO ORIGEN PUERTO DESTINOLONGITUD UDP
DATOS
0 15 16 31
SUMA DE COMPROBACIÓN
CABECERAUDP
Longitud en octetos del datagrama UDP (cabecera + datos) =
Longitud mínima de 4 octetos yLongitud máxima de 65.535 octetos
(8 octetos)
A todo el datagrama UDP(pseudocabecera, cabecera y datos)
Uso opcional: Si entidad UDP emisora lo pone todo a ceros = No usar
No es realmente necesario ya que hay un campo longitud total y otro que define la longitud de la cabecera en el datagrama IP. Por tanto, si se
resta el valor del 2º campo al 1º, se puede deducir la longitud del datagrama UDP que está encapsulado en un datagrama IP
Se usa por una cuestión de eficiencia para la entidad UDP destino que le permite calcular la longitud de los datos a partir de la información del
datagrama UDP ya que la cabecera IP se ha eliminado
ARQUITECTURA Y SERVICIOS DE INTERNET© Fco. Javier Yágüez García
76
32 bits
Dirección IP de origenDirección IP de destino
0 17 Long. Datagrama UDP
Puerto de origen Puerto de destinoLongitud datagrama UDP Checksum (opcional)
Pseudocabecera UDPRECORDATORIO
Pseudocabecera
Cabecera
•La pseudocabecera se antepone a la cabecera UDP (al igual que en TCP), perosólo a efectos de calcular el checksum, no se envía realmente (de ahí sunombre)
•Para no violar la jerarquía de cabeceras de protocolos puesto que lasdirecciones IP que contiene pertenecen al nivel IP
•Permite a la entidad UDP (al igual que a la entidad TCP) receptora detectarpaquetes mal entregados, es decir, comprobar que su nivel IP no se haequivocado y le ha pasado un datagrama IP que era para otra máquinaaunque el datagrama UDP está libre de errores•El valor 17 (10001 en binario) indica que el protocolo de transporte es UDP
32 bits