SISTEMA DE TRANSMISION DE DATOS

Anuncio
PRIMERA PARTE
Tema 1: Capítulo 2
Nivel de Transporte
Javier Yágüez
Profesor Titular de Universidad
1
NIVEL DE TRANSPORTE
TRANSPORTE FIABLE TCP
Soy TCP
© 2012 Cisco and/or its affiliates. All rights reserved.
2
REDES DE
COMPUTADORES
Transporte y Aplicación
NIVELES SUPERIORES TCP/IP
NIVELES EXTREMO a EXTREMO
NIVELES
NIVELES
SUPERIORES
SUPERIORES
SISTEMA FINAL
APLICACIÓN
TCP/UDP
EXTREMO A EXTREMO
EXTREMO A EXTREMO
IP
SISTEMA FINAL
APLICACIÓN
TCP/UDP
IP
IP
IP
INTERFAZ DE
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ DE
RED
DE RED
DE RED
DE RED
DE RED
RED
WiFi
Ethernet
NIVELES
ROUTER
ROUTER
NIVELES
INFERIORES
(SISTEMA INTERMEDIO)
(SISTEMA INTERMEDIO)
INFERIORES
Nivel de Transporte
3
REDES DE
COMPUTADORES
PROTOCOLO TCP (Transmission Control Protocol)
RFC-793, STD 0007
Transporte fiable de los mensajes de aplicación encapsulados en segmentos TCP
Responsable de la recuperación de todos los segmentos perdidos en el nivel de enlace y red
Las unidades de datos del protocolo
TCP (“PDUs TCP”) se denominan
segmentos TCP
SISTEMA FINAL
SISTEMA FINAL
mensajes
APLICACIÓN
APLICACIÓN
ORIENTADO A CONEXIÓN y FIABLE
(control de errores y flujo)
TCP
ROUTER
IP
…
IP
TCP
ROUTER
IP
IP
INTERFAZ DE
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ DE
RED
DE RED
DE RED
DE RED
DE RED
RED
Ethernet
Ethernet
Ethernet CRC (Errores Físicos)
Ethernet CRC
(Errores Físicos)
…
• ERRORES: IPv4 checksum, destino inalcanzable, TTL = 0, …
• CONGESTIÓN: Desborde del buffer del interfaz de salida
Nivel de Transporte
• …
4
REDES DE
COMPUTADORES
Las Pérdidas de los segmentos TCP, o de los paquetes IP que los
encapsulan, se suelen ocasionar en los Routers por congestión
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
…
Caudal
IP
IP
IP IP
IP
buffer de la cola
enlaces
del interfaz de salida
de entrada
…
enlace
de salida
Descarte del último paquete
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
Nivel de Transporte
5
REDES DE
COMPUTADORES
Ejemplo Gráfico de los potenciales enlaces en algunos routers en el núcleo de Internet
SITUACIÓN ESPECIALMENTE CRÍTICA
Red Troncal
(backbone) de Internet
TCP recupera el
contenido de los
paquetes en caso de
errores IP
Nivel de Transporte
6
REDES DE
COMPUTADORES
FIABILIDAD TCP
 CONTROL DE ERRORES
 CONTROL DE FLUJO
Nivel de Transporte
7
REDES DE
COMPUTADORES
Control de Errores TCP
Fallos en la Comunicación
 TODOS LOS OCTETOS DE DATOS contenidos en el
CAMPO DE DATOS de cada segmento de información
VAN NUMERADOS (cada octeto tiene su propio nº de
secuencia) y dichos octetos tienen asociados
– Una CONFIRMACIÓN
• Las confirmaciones, por parte de la entidad
receptora TCP, reconocen octetos de datos
recibidos correctamente y no los segmentos de
información que los contienen porque éstos no
van numerados
– Un TEMPORIZADOR de espera de CONFIRMACIÓN
Al vencimiento del temporizador, al no llegar la
confirmación, durante el plazo de espera
establecido, se produce una retransmisión
Nivel de Transporte
8
REDES DE
COMPUTADORES
Diseño Operacional TCP
 Todo proceso o protocolo de aplicación montado
sobre TCP se despreocupa de delimitar sus mensajes
– El proceso de aplicación pasa el “chorro” o flujo de
octetos (byte-stream) de su mensaje de aplicación
a su entidad TCP
– A medida que va recibiendo octetos del proceso de
aplicación, la entidad TCP va, RECOGIENDO,
(buffer
de
transmisión),
ALMACENADO
NUMERANDO y, posteriormente, AGRUPANDO
dichos octetos en segmentos de datos TCP en
función del tamaño de su MSS (campo datos) y de
la MTU (1500 octetos) de salida
– Por esta razón, TCP no numera los segmentos de
datos sino los octetos de datos transmitidos
Nivel de Transporte
9
REDES DE
COMPUTADORES
3 MECANISMOS DE CONTROL DE ERRORES
Fallos en la Comunicación
 Números de secuencia: Todos los octetos del campo datos de
un segmento de información disponen de un número de
secuencia
– Los números de secuencia permiten pasar al nivel
de aplicación los octetos de datos (cabecera de
aplicación + campo datos de usuario o carga útil)
ordenadamente y detectar octetos duplicados si
han llegado las confirmaciones con errores físicos
o simplemente no han llegado
 Confirmaciones: Todos los octetos del campo datos de un
segmento de información tienen asociados una confirmación
 Temporizadores: Todos los octetos del campo datos de un
segmento de información disponen de un plazo de espera para
la confirmación de dichos octetos de datos y al vencimiento sin
confirmación se produce una retransmisión
Nivel de Transporte
10
REDES DE
COMPUTADORES
MECANISMOS DE CONTROL DE ERRORES
Los TEMPORIZADORES permiten controlar las
pérdidas de segmentos de información en un router
Temporizadores: Todos los
octetos del campo datos de un
segmento
de
información
disponen de un plazo de espera
para la confirmación de dichos
octetos
de
datos
y
al
vencimiento sin confirmación se
produce una retransmisión
Pérdida del
paquete IP
en un router
Temporizador
de
Retransmisión
Nivel de Transporte
11
REDES DE
COMPUTADORES
MECANISMOS DE CONTROL DE ERRORES
Los TEMPORIZADORES permiten controlar las
pérdidas de segmentos de información por errores
de transmisión en el destinatario
Checksum al segmento completo
Segmento con errores físicos
Temporizador
de
OJO!!! Se elimina cualquier
segmento de información con
errores físicos
Retransmisión
Nivel de Transporte
12
REDES DE
COMPUTADORES
MECANISMOS DE CONTROL DE ERRORES
También, los TEMPORIZADORES permiten controlar las pérdidas
de confirmaciones ya sean por pérdidas en un router o por
errores de transmisión detectados en el destinatario
Temporizador
de
Retransmisión
Confirmaciones
Todos los octetos del
campo datos de un
segmento de información
tienen asociados una
confirmación
Nivel de Transporte
13
REDES DE
COMPUTADORES
MECANISMOS DE CONTROL DE ERRORES
Los NÚMEROS DE SECUENCIA PERMITEN CONTROLAR OCTETOS DE DATOS
PERDIDOS, DESORDENADOS Y DUPLICADOS
SOLUCIÓN PARA DETECTAR DUPLICIDAD EN PÉRDIDAS DE CONFIRMACIONES
Números de secuencia: Cada
octeto del campo datos de un
segmento
de
información
dispone de un número de
secuencia
Pasar Octeto
de Datos al
nivel
Superior
Temporizador
de
Retransmisión
DETECCIÓN
DE DUPLICIDAD
Para evitar una nueva
retransmisión innecesaria por
“timeout”
Nivel de Transporte
14
REDES DE
COMPUTADORES
FIABILIDAD TCP
 CONTROL DE ERRORES
 CONTROL DE FLUJO
Nivel de Transporte
15
REDES DE
COMPUTADORES
MECANISMO DE CONTROL DE FLUJO
Hablas muy
deprisa, no te
entiendo. Repite!!!
Nivel de Transporte
16
REDES DE
COMPUTADORES
MECANISMO DE CONTROL DE FLUJO
CADA PROCESO o ENTIDAD TCP DISPONE DE 2 BUFFERS y 2 VENTANAS DESLIZANTES
WT (buffer de transmisión) y WR (buffer de recepción)
A
B
Aplicación
Envío
Aplicación
TCP Recepción
Buffer
de Transmisión
(Ventana de Transmisión)
Envío
Buffer
de Transmisión
(Ventana de Transmisión)
Buffer
de Recepción
(Ventana de Recepción)
IP
Nº SEC = n
Primer octeto
Buffer
de Recepción
(Ventana de Recepción)
IP
Control de los números
VENTANA DESLIZANTE DE TRANSMISIÓN
del buffer
Lista de números de secuencia
consecutivos de los octetos de datos
que, en un momento dado, el emisor ha
enviado pendientes de confirmación
BUFFER DE TRANSMISIÓN
Los octetos de datos
procedentes del
proceso de aplicación
se recogen, almacenan
y numeran en el buffer
de transmisión
TCPRecepción
Nº SEC = n+1 Nº SEC = n+2
Segundo octeto
Tercer octeto
...
TCP va creando segmentos de datos y los va transmitiendo sin esperar a que se llene el buffer de transmisión
Nivel de Transporte
17
REDES DE
COMPUTADORES
MECANISMO DE CONTROL DE FLUJO
CADA PROCESO o ENTIDAD TCP DISPONE DE 2 BUFFERS y 2 VENTANAS DESLIZANTES
WT (buffer de transmisión) y WR (buffer de recepción)
B
A
Aplicación
Envío
Aplicación
TCP
Buffer
de Transmisión
(Ventana de Transmisión)
Recepción
Envío
Buffer
de Recepción
(Ventana de Recepción)
Buffer
de Transmisión
(Ventana de Transmisión)
IP
Los octetos de datos
procedentes de la
entidad TCP emisora y
que espera recibir la
entidad TCP receptora,
se recogen y
almacenan por su nº
de secuencia, en el
buffer de recepción
TCPRecepción
IP
Control de los números
Primer octeto
VENTANA DESLIZANTE DE RECEPCIÓN
Lista de números de secuencia consecutivos
de los octetos de datos que, en un momento
dado, el receptor puede aceptar
Nº SEC = n+1 Nº SEC = n+2
BUFFER DE RECEPCIÓN
Nº SEC = n
Buffer
de Recepción
(Ventana de Recepción)
Segundo octeto
del buffer
Tercer octeto
...
TCP va pasando octetos de datos,, si llegan correctamente a partir del límite inferior sin esperar a que se llene el buffer de recepción
Nivel de Transporte
18
REDES DE
COMPUTADORES
Funcionamiento de la Entidades TCP Emisora y Receptora

RFC-793
– CUANDO SE LLENA EL BUFFER DE TRANSMISIÓN, LA ENTIDAD TCP EMISORA VA CREANDO
SEGMENTOS DE DATOS
– CUANDO SE LLENA EL BUFFER DE RECEPCIÓN, LA ENTIDAD TCP RECEPTORA VA PASANDO
LOS DATOS AL PROCESO DE APLICACIÓN CUANDO ÉSTE LO SOLICITE
 Proliferación en Internet de aplicaciones en tiempo real
– Aplicaciones interactivas (VoIP, juegos en red, etc) y no interactivas (streamings de
audio y video, p.ej., en HTTP) en tiempo real
 Mayores velocidades de transmisión en Internet
 Riesgo de que se llene inmediatamente un buffer de recepción
 Excepciones:
– No se espera a que se llene el BUFFER DE TRANSMISIÓN para enviar
segmentos de datos
– No se espera a que se llene el BUFFER DE RECEPCIÓN para pasar
octetos de datos al proceso de aplicación receptor, es decir, se pasan
inmediatamente, DE FORMA ORDENADA, siempre y cuando el proceso
de aplicación lo solicite
 Los procesos receptores de aplicación suelen estar de manera continúa
a la espera de recepción de datos, es decir, solicitando datos
Nivel de Transporte
19
REDES DE
COMPUTADORES
El Control de Flujo TCP
Características
 El Control de Flujo lo ejerce el proceso TCP
receptor, a través de su WR, sobre el proceso TCP
emisor para evitar que éste desborde el buffer del
receptor
 WT en el lado emisor es ESCLAVA de WR en el lado
receptor
 WT va variando puntualmente, en fase de
transferencia de datos, en función de la WR del otro
extremo
Nivel de Transporte
20
REDES DE
COMPUTADORES
Sincronización de WR y WT para un Correcto Control de Flujo
 Las implementaciones TCP son muy diferentes en cuanto a los algoritmos auxiliares
empleados (p.ej., algoritmos de gestión de ventanas), dependiendo del sistema operativo
y su distribución o versión
 WR inicial = Tamaño máximo del 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
– Límite inferior de WR = Primer octeto de datos esperado
– Límite superior de WR = Último octeto de datos esperado
– WR = Límite superior – Límite Inferior + 1
– Los datos correctos se almacenan en el buffer de recepción cuando llegan
y se entregan al proceso de aplicación por una llamada de solicitud de
datos (read) o cuando lo considera conveniente la propia entidad TCP
 CUANDO LLEGAN OCTETOS DE DATOS CORRECTOS (primer
octeto coincide con el límite inferior de WR)
• La entidad TCP receptora:
– ALMACENA los octetos de datos recibidos
– CONFIRMA los octetos de datos recibidos
– PASA los octetos de datos recibidos al proceso de aplicación
– Se DESLIZA WR (límites inferior y superior) en función del
tamaño máximo (inicial) del buffer de recepción (WR inicial)
Nivel de Transporte
21
REDES DE
COMPUTADORES


Sincronización de WR y WT para un Correcto Control de Flujo
WT inicial = Tamaño máximo del buffer de transmisión
WT inicial = WR inicial (tamaño máximo del buffer de recepción del otro extremo)
– Límite inferior de WT = Primer octeto de datos enviado pendiente de
confirmación
– Límite superior de WT = Último octeto de datos enviado pendiente de
confirmación
– WT= Límite superior – Límite Inferior + 1
– WT variando en fase de transferencia de datos en función de la WR del otro
extremo
– CONFIRMACIÓN (ACK) de la entidad TCP receptora: Primer octeto del campo de datos del
siguiente segmento de información que se espera recibir, con lo cual los octetos anteriores
están todos confirmados
 SIEMPRE INDICA EL LÍMITE INFERIOR DE WT
• El ACTUAL si ha habido SEGMENTOS PERDIDOS
– La entidad TCP emisora NO REALIZA NINGUNA ACCIÓN
• Uno NUEVO si NO ha habido segmentos perdidos
– La entidad TCP emisora:
– DESACTIVA el temporizador asociado a los octetos confirmados
– ELIMINA copia de los octetos confirmados en el buffer de
transmisión
– DESLIZA WT (límites inferior y superior) en función del tamaño
máximo (inicial) del buffer de recepción (WR inicial)
Nivel de Transporte
22
REDES DE
COMPUTADORES
WR = 6 (MSS =2)
Nº SEC=0
CONF=1
LI=1 2
3
4
PREVIO
CONF=1
5 LS=6
WR = 6
LI=1 2
3
4
5 LS=6
MSS=2
ALARMA
WT = 6
LI=1 2
3
4
SIN ERRORES
5 LS=6
A L
0,1
AL
APLICACIÓN
LI=1 2
5
6
AR
GIRO
WT LI=5 6
MA
9 LS=10
9
6
7 LS=8
GIRO
WR
LI=3 4
5
6
7 LS=8 AR
8
GIRO
WR
9 LS=10
A R
7
CONF=5, WR = 6
MA
GIRO LI=7 8
WT
5 LS=6 A L
APLICACIÓN
LI=5 6
8
5
7 LS=8 CONF=3, W = 6
R
AR
7
4
A L
LI=3 4
GIRO
WT LI=3 4
3
LI=5 6
MA
10 11 LS=12 CONF=7, WR = 6 LI=7 8
7
8
9 LS=10APLICACIÓN
MA
GIRO
9 10 11 LS=12 WR
Nivel de Transporte
23
REDES DE
COMPUTADORES
Nº SEC=0
WT = 6
CONF=1
LI=1 2
3
4
PREVIO
CONF=1
5 LS=6
WR = 6
WR = 6 (MSS =2)
LI=1 2
3
4
5 LS=6
MSS=2
ALARMA
LI=1 2
3
4
A L A R
5 LS=6
ERRORES
Hasta que no lleguen “A” “L”
permanecen en buffer
ENTREGA ORDENADA
AL
LI=1 2
3
4
A L A R
4
CONF=1, WR = 4
5 LS=6
AL (“timeout”) LI=1 2
3
4
A L A R
LI=5 6
GIRO
WT
LI=5
6
7
M A
GIRO LI=7 8
WT
8
7
APLICACIÓN
5 LS=6
ALAR
8
GIRO
9 LS=10 WR
8
9 LS=10
9 LS=10 CONF=5, WR = 6
MA
9
5 LS=6
AR
AR
LI=1 2
3
LI=5 6
MA
10 11 LS=12 CONF=7, WR = 6 LI=7 8
7
APLICACIÓN
MA
GIRO
9 10 11 LS=12 WR
Nivel de Transporte
24
REDES DE
COMPUTADORES
Servicio Multiplexado TCP
SIMULTÁNEO y DIFERENCIADO a través de los números de puerto, aplicando
mecanismos y recursos de fiabilidad por separado
Aplicación
multimedia en
tiempo real
SMTP
Telnet FTP
....
DNS
HTTP
ICMP
IP
Routers Avanzados (OSPF)
ARP
RTP
....
UDP
TCP
Protocolos entre
DHCP
ICMP
INTERFAZ DE LA RED DE ACCESO
Ethernet, WiFi
HARDWARE
PPP
RED
DE
ACCESO
Nivel de Transporte
26
REDES DE
COMPUTADORES
TCP ofrece un SERVICIO ORIENTADO A CONEXIÓN
FIABLE a los Procesos del Nivel de Aplicación
 Un SERVICIO ORIENTADO A CONEXIÓN dispone
de TRES FASES
1. ESTABLECIMIENTO
DE
CONEXIÓN
2. TRASFERENCIA DE DATOS
3. LIBERACIÓN DE LA CONEXIÓN
LA
 ¿Cómo accede la entidad de aplicación al servicio TCP?
– Haciendo uso tanto en el código del cliente como en el código
del servidor de unas funciones de comunicaciones estándares
pertenencientes a un API de Programación de Aplicaciones en
red (API de Red o API de Sockets) denominado INTERFAZ
DE SOCKETS
Nivel de Transporte
27
REDES DE
COMPUTADORES
INTERFAZ DE SOCKETS
IMPLEMENTACIÓN DEL SERVICIO TCP
APLICACIÓN
TCP
Localización conceptual
Interfaz de sockets
IP
RED
DE
ACCESO
ETHERNET
HARDWARE
Nivel de Transporte
28
REDES DE
COMPUTADORES
INTERFAZ DE SOCKETS
Universidad de Berkeley
Aplicación
El programador tiene que
trabajar a bajo nivel y llamar
directamente a las funciones de
comunicaciones del API de
programación proporcionado
por un sistema basado en un
interfaz de sockets
de Usuario
Interfaz de Sockets
UDP
TCP
IP
Interfaz de Acceso
y Hardware
Red
Nivel de Transporte
29
REDES DE
COMPUTADORES
PROTOCOLO TCP (RFC-793)
Formato de un Segmento TCP
Engloba dos tipos de información: Cabecera + Datos
INFORMACIÓ DE CONTROL
CABECERA (Variable)
20 octetos
sin opciones
CARGA ÚTIL para TCP
DATOS (Variable)
Hasta un máximo
conocido como MSS
TCP calcula un MSS de tal forma
Maximum Segment Size (MSS) = Carga Útil =
que los datagramas IP
= SDU del Nivel de Aplicación = 1024 octetos (MSS por omisión)
resultantes se correspondan
con la MTU de la red de acceso
MSS = MTU (1500 octetos)- cabecera IP - cabecera TCP
Nivel de Transporte
30
REDES DE
COMPUTADORES
Cabecera TCP + DATOS
Primer octeto
del campo de datos
del segmento de información
que se va a enviar= Nº de secuencia= 32 bits=
Primer octeto del campo de datos del
siguiente segmento de información
que se espera recibir
(LOS OCTETOS ANTERIORES
Módulo 232= 0, 1, 2, …232-1, 0, 1, …, 232-1, 0,1…
15 16
0
Proceso de aplicación emisor (cliente o servidor)
CABECERA
TCP
Mínima por
Omisión
=20 octetos
Máxima=60 octetos
DESP = Nº de bloques
de 4 octetos que
ocupa la cabecera
ESTÁN CONFIRMADOS)
31
Proceso de aplicación receptor (cliente o servidor)
PUERTO ORIGEN
PUERTO DESTINO
NÚMERO DE SECUENCIA
NÚMERO DE CONFIRMACIÓN (ACK)
4 bits
6 bits
DESP RESERVADO URG ACK PSH RST SYN FIN
VENTANA
(Buffer de recepción MÁX = 65.535 octetos)
SUMA DE COMPROBACIÓN
Por omisión 5 bloques
(0101), como máximo
15 bloques (1111)
PUNTERO A DATOS URGENTES DE CONTROL
(caracteres de control de la aplicación)
RELLENO
OPCIONES
(Bits que se añaden al campo Opciones para que la
cabecera tenga longitud total múltiplo de 32 bits)
DATOS
(variable en función de la MTU)
SYN=1 ACK=0, Solicitud conexión
SYN=1 ACK=1, Respuesta OK!
Nivel de Transporte
Ventana deslizante de recepción:
Nº de octetos de datos que el emisor de esta
Cantidad de octetos libres
información puede manejar en función del
que se pueden almacenar
tamaño puntual de su buffer de recepción =
en el buffer de recepción
= 0 octetos (descanso), 1 octeto, 2 octetos hasta
216-1
octetos (65.535 octetos )
31
REDES DE
COMPUTADORES
Bit Push
 El bit PSH se utiliza en TCP para forzar el envío de
datos en segmentos de datos cortos e independientes
 Cuando el proceso de aplicación emisor desea que los
datos entregados a TCP salgan inmediatamente, sin
que la ENTIDAD TCP EMISORA espere más datos de
la aplicación, lo indica en la llamada solicitando una
operación PUSH
– De esta forma, no se corre el riesgo de que TCP esté
se quede esperando más octetos de datos de la
aplicación para construir un segmento mayor
 LA ENTIDAD TCP RECEPTORA debe pasar cuanto
antes los octetos de datos de un segmento con el bit
PUSH = 1
Nivel de Transporte
32
REDES DE
COMPUTADORES
Fase de Transferencia de Datos
Casos excepcionales
 Datos ‘Pushed’ (bit PSH)
– El proceso de aplicación envía un “CHORRO DE BYTES” (BYTE
STREAM) y solicita mediante una llamada a su entidad TCP
(parámetro indicador PUSH en la llamada) que los envíe lo antes
posible en un segmento de datos con el bit PSH = 1
– A su vez, la entidad TCP receptora los pondrá a disposición del
proceso de aplicación en el momento en que dicho proceso lo solicite a
través de la correspondiente llamada
– No modifica el orden de cómo se procesan los datos en la aplicación
 Datos Urgentes (bit URG y Urgent Offset = Puntero a Datos Urgentes
de Control)
– Los datos se quieren entregar a la aplicación remota sin esperar a
que esta los pida
 Ejemplo: Abortar un programa con CTRL-C en una sesión telnet
– Modifica el orden, ya que “cuela” unos datos por delante de otros
Nivel de Transporte
33
REDES DE
COMPUTADORES
Opciones TCP
15 16
0
PUERTO ORIGEN
31
PUERTO DESTINO
NÚMERO DE SECUENCIA
NÚMERO DE CONFIRMACIÓN (ACK)
CABECERA
TCP
4 bits
6 bits
DESP RESERVADO URG ACK PSH RST SYN FIN
VENTANA
(Buffer de recepción MÁX = 65.535 octetos)
SUMA DE COMPROBACIÓN
OPCIONES
PUNTERO A DATOS URGENTES DE CONTROL
(caracteres de control de la aplicación)
RELLENO
(Bits que se añaden al campo Opciones para que la
cabecera tenga longitud total múltiplo de 32 bits)
DATOS (Variable)
Nivel de Transporte
34
REDES DE
COMPUTADORES
Formato de las Opciones TCP
Campo de Información de Control de Longitud Variable
para Servicios Adicionales
RFC-793 y RFC-1323
Formato TLV: Tipo-Longitud-Valor o Datos
TIPO
8 bits
LONGITUD DATOS…OPCIÓN
8 bits
(variable)
Longitud completa
de la opción en octetos
(TIPO + LONGITUD + DATOS)
Nivel de Transporte
35
REDES DE
COMPUTADORES
Opciones TCP más Relevantes
Descripción
TIPO
LONGITUD
(octetos)
DATOS
Descripció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
…
…
…
…
Nivel de Transporte
36
REDES DE
COMPUTADORES
CAMPO DE OPCIONES DE INFORMACIÓN DE CONTROL
(LONGITUD VARIABLE DE HASTA 40 OCTETOS)


Según la implementación TCP que disponga el sistema operativo, habrá más o menos opciones
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º máximo 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
– Por omisión: 1024 octetos (otros: 512, 256, 128, 64, … )
– No confundir MSS con el tamaño del buffer de recepción
 Factor de Escala de la Ventana (RFC-1323):
– Permite ampliar el campo VENTANA de 16 bits (65.536 octetos) hasta un
máximo de 230 = 1 Gbyte
 Por omisión, el tamaño máximo de la ventana de recepción es de 216-1 octetos (65.535 octetos)
 Marca o sello de tiempo (timestamp):
Tipo =8
Longitud = 10
Valor actual del reloj emisor
Eco del valor actual del reloj emisor
– No es lo mismo que el destino esté ubicado en la misma Ethernet o WiFi que disperso
geográficamente por Internet
– Permite al emisor configurar sus TEMPORIZADORES DE ESPERA DE CONFIRMACIÓN
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
– El emisor pone el valor de su reloj
– El receptor pone el valor de su reloj y devuelve el mismo valor (eco) en el ACK del segmento
 Valor actual del reloj del emisor = valor monótamente creciente (formato UT = nº de mseg después de medianoche)
– El eco es válido si el bit ACK = 1 en la cabecera del segmento
Nivel de Transporte
37
REDES DE
COMPUTADORES
Temporizadores: Valores de Timeout
 Los valores de los temporizadores de espera de respuesta se
establecen
dinámicamente
mediante
ALGORITMOS
AUTOADAPTATIVOS que ajustan los valores a la dispersión
geográfica y al estado de la red, según es percibido éste por
la entidad de transporte emisora
 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
Nivel de Transporte
38
REDES DE
COMPUTADORES
Fase de Establecimiento de una Conexión TCP
Intercambio de 3 segmentos
CLIENTE APLICACIÓN
TCP “A”
Con SYN = 1,
se negocian
los números
de
secuencia,
las WR y las
opciones
deseadas
(p.ej., MSS)
SERVIDOR APLICACIÓN
TCP “B”
Las confirmaciones de SEC
en segmentos SYN consumen
un nº de secuencia
CONF = último nºSEC recibido + 1
SEC = última CONF
CONF = último nºSEC recibido + 1
Nivel de Transporte
39
REDES DE
COMPUTADORES
Imposición de WR y MSS
 WR y MSS no se negocian, se imponen
 La WR MÁXIMA INICIAL, al principio, se indica mediante
el bit SYN = 1
 La WR MÁXIMA INICIAL de hasta 65.535 bytes (y a partir
de 65.536 hasta 1 Gbyte con escalado de ventana) puede
variar
en
cualquier
momento
aumentando
o
disminuyendo
 Dependen de los recursos (espacio en buffer) de cada
entidad TCP y puede ser diferente para cada sentido
 El valor por omisión de MSS es de 1024 bytes
Nivel de Transporte
 El MSS elegido puede ser mayor o menor que el valor por
omisión y se indica mediante una opción de la cabecera
TCP con el bit SYN = 1
 Cada entidad TCP indica a su entidad par que MSS está
dispuesto a aceptar, y el otro debe obedecer (puede usar
ese valor u otro menor, pero no mayor)
 El MSS se mide en bytes y sólo toma en cuenta los datos,
no la cabecera TCP
40
REDES DE
COMPUTADORES
Identificadores de conexión
(ISN: Initial Sequence Number)
 Cuando una entidad TCP va a establecer una conexión
TCP elige un ISN
 El ISN evita el riesgo de que un segmento de datos
duplicado y retrasado de una conexión anterior
provoque una conexión espúria
 Cada TCP elige independientemente el ISN que
utilizará para esa conexión, por tanto siempre hay dos
ISN asociados, uno por cada ‘lado’ de la conexión
Nivel de Transporte
41
REDES DE
COMPUTADORES
Elección del ISN
 Según el RFC 793 (TCP), el ISN debe ser un entero de 32 bits sin signo
que se incremente en 1 cada 4 microsegundos
 Así un ISN puede reaparecer al cabo de unas 4 horas, tiempo más
que suficiente para que los posibles duplicados retrasados que
utilicen el mismo ISN ya hayan desaparecido
 En la práctica los sistemas operativos (Unix) utilizan generalmente
algoritmos más sencillos para construir los ISN, con el fin de consumir
menos CPU
 UNIX BSD incrementa el ISN en 64000 cada medio segundo
 Además, el ISN se incrementa en 64000 cada vez que se
establece una conexión, de modo que dos conexiones
consecutivas siempre tendrán diferente ISN, aunque ocurran
muy próximas en el tiempo
Nivel de Transporte
42
REDES DE
COMPUTADORES
Establecimiento de una conexión TCP
TCP “A”
TCP “B”
10.0.0.2:1304
10.0.0.1:80
(estados)
LISTEN
(estados)
SYN-SENT
(ISN 100)
SYN-RECEIVED
← Tiempo
(ISN 300)
ESTABLISHED
ESTABLISHED
Nivel de Transporte
43
REDES DE
COMPUTADORES
Fase de Transferencia de Datos
2 Tipos de Tráfico
 TRÁFICO INTERACTIVO
– Generado por aplicaciones que transmiten los datos en
pequeñas cantidades
 Generalmente crean segmentos de tamaños muy pequeños en los
dos sentidos con el bit PSH = 1
• P. ej., SSH, telnet, rlogin, etc,
 TRÁFICO MASIVO
– Generado por aplicaciones que transmiten los datos en
grandes cantidades
 Generalmente crean segmentos de tamaños muy pequeños en un
sentido con el bit PSH = 1 (solicitudes, p.ej., GET en FTP y HTTP) y
de tamaño máximo en el otro sentido con el bit PSH = 0
• P. ej., FTP, HTTP (Web), …
Nivel de Transporte
44
REDES DE
COMPUTADORES
Datos Pushed (bit PSH) en Emisión y Recepción
 El proceso de aplicación emisor envía un “CHORRO DE BYTES” (BYTE
STREAM) y solicita mediante una llamada a su entidad TCP emisora
(parámetro indicador PUSH en la llamada) que los envíe lo antes posible en
un segmento de datos con el bit PSH = 1
– Sin esperar a que se llene el buffer de transmisión
 Por ejemplo, solicitudes GET y respuestas HTTP 1.1 200 OK del
HTTP
 La entidad TCP receptora los pondrá a disposición de dicho proceso de
aplicación
– Sólo cuando el proceso de aplicación solicite datos a través de una
llamada
– Sin esperar a que se llene el buffer de recepción
– Siempre y cuando el primer byte coincida con el límite inferior de WR
 ENTREGA ORDENADA: No modifica el orden de cómo se
procesan los datos en la aplicación, es decir, no “cuela” unos datos
por delante de otros
Nivel de Transporte
45
REDES DE
COMPUTADORES
EJEMPLO de Fase de Establecimiento de una Conexión TCP
Intercambio de 3 segmentos con la Opción MSS en un extremo (“B”)
Con VENTANA en “A” de 300 octetos y en “B” de 900 octetos y MSS de 300 en “B”
CLIENTE
SERVIDOR
APLICACIÓN
APLICACIÓN
TCP “A”
TCP “B”
MSS=300
Tamaño máximo
de VENTANA DE RECEPCIÓN
que desea “A”
CONF = SEC + 1
WT = 900 bytes
LI = 3
LS = 902
Tamaño máximo
de VENTANA DE RECEPCIÓN
que desea “B”
SEC = última CONF
CONF = SEC + 1
Nivel de Transporte
46
REDES DE
COMPUTADORES
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
CLIENTE
APLICACIÓN
TCP “A”
SERVIDOR
APLICACIÓN
TCP “B”
MSS=300
CONF (enviada)= SEC+ DATOS (del último segmento recibido)
SEC (enviado) = SEC+ DATOS (del último segmento enviado)
CONF (enviada)= SEC+ DATOS (del último segmento recibido)
¡¡¡OJO!!! EN SEMIDÚPLEX
PARA UNA MAYOR
COMPRENSIÓN
…
Nivel de Transporte
47
REDES DE
COMPUTADORES
Ejemplo de Transferencia de Datos con Errores
Transmisión unidireccional de datos (de “A” a “B”) con errores
(pérdidas de paquetes IP) y con VENTANA en “A” de 300 octetos y en “B” de 900 octetos
“A” transmite un primer segmento
de 300 octetos pendientes de
confirmación
TCP “A”
WT = 900 octetos
LI = 3
LS = 902
Si se recibe UNA CONF NUEVA, se
DESACTIVA el temporizador, se
ELIMINA COPIA y se DESLIZA
WT
CONFIRMACIÓN DUPLICADA
No produce ningún efecto
TCP “B”
MSS=300
”B” ante la llegada de
los 300 primeros
octetos procede a
almacenarlos,
confirmarlos, pasarlos
al nivel superior y
deslizar WR
“B” vuelve a confirmar
los 300 primeros octetos
(NO CONF=903 porque se
confirmarían los octetos
del 2º segmento)
time-out
time-out
Si se recibe UNA CONF NUEVA, se
DESACTIVA el temporizador, se
ELIMINA COPIA y se DESLIZA
WT
CONFIRMACIÓN DUPLICADA
No produce ningún efecto
Nivel de Transporte
DETECCIÓN DE DUPLICACIÓN
Si los dos segmentos
vienen seguidos, se
envía una única CONF
una vez recibido el 2º
(MENOS TRÁFICO Y PROCESO)
48
REDES DE
COMPUTADORES
Temporizador de Espera de Datos
(ACK “piggybacked”)
 Cuando una entidad TCP recibe uno o varios
segmentos de datos y, a su vez, no tiene datos que
enviar de vuelta, no envía el ACK inmediatamente
– Espera “un poco” por si el proceso de aplicación
genera datos y de ese modo aprovecha para enviar
el ACK en el segmento de datos (ACK
“piggybacked”)
• En muchos sistemas ese temporizador (espera de
datos de la aplicación) suele ser de unos 200 ms
– Si se agota el timer sin que la aplicación haya
producido datos se envía un segmento sin datos
con el ACK
Nivel de Transporte
49
REDES DE
COMPUTADORES
Timer de ACK Retrasado en Servidor Rápido
Timer de Espera de Datos = 200 ms
Cliente Aplicación
TCP
Servidor Aplicación
TCP
200 bytes
50 ms
(antes de 200 ms)
ACK ‘piggybacked’
200 ms
Nivel de Transporte
50
REDES DE
COMPUTADORES
Opciones TCP más Relevantes
Descripción
TIPO
LONGITUD
(octetos)
DATOS
Descripció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
…
…
…
…
Nivel de Transporte
51
REDES DE
COMPUTADORES
TCP SACK
TCP de Reconocimiento Selectivo
Selective Acknowledgment (SACK)
 Definido en el RFC-2018 y, posteriormente,
extendido en el RFC-2883
 Se recomienda la opción SACK, especialmente,
cuando hay múltiples pérdidas de segmentos TCP
– En la actual Red Internet, es una opción TCP
por omisión
Evita innecesarias retransmisiones de los
octetos de datos de segmentos de
información no contiguos que ya fueron
entregados al receptor
Nivel de Transporte
52
REDES DE
COMPUTADORES
TCP SACK
TCP de Reconocimiento Selectivo
Selective Acknowledgment (SACK)
 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
– 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
Nivel de Transporte
53
REDES DE
COMPUTADORES
RETRANSMISIÓN INNECESARIA DE
SEGMENTOS NO CONTIGUOS
TCP “A”
TCP “B”
SEGMENTOS NO
CONTIGUOS
LLEGÓ
CORRECTAMENTE
time-out
time-out
RETRANSMISIÓN
INNECESARIA
Nivel de Transporte
54
REDES DE
COMPUTADORES
Ejemplo de un Paquete SACK
TCP “A”
TCP “B”
SEGMENTO CONTIGUO
(al último recibido correctamente)
SEGMENTO NO CONTIGUO
“B” emplea SACK
PRIMER OCTETO DE DATOS
QUE SE ESPERA RECIBIR
DEL SIGUIENTE SEGMENTO
DE INFORMACIÓN NO
CONTIGUO Y CONSECUTIVO
SE DESACTIVA EL
TEMPORIZADOR
PRIMER OCTETO DE DATOS RECIBIDO DEL
PRIMER SEGMENTO DE INFORMACIÓN NO
timeout
CONTIGUO QUE HA HECHO ENVIAR
EL PRIMER PAQUETE SACK
última CONF realizada
Nivel de Transporte
55
REDES DE
COMPUTADORES
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” OCTETO DE DATOS
RECIBIDO DEL “PRIMER” SEGMENTO DE INFORMACIÓN NO CONTIGUO
• 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” = 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
Nivel de Transporte
56
REDES DE
COMPUTADORES
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
…X
n–
Yn
 Se pueden enviar hasta 4 bloques NO CONSECUTIVOS SACK (32 octetos)
• 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
 Después del primer bloque SACK, los siguientes pueden estar listados en orden
arbitrario
Nivel de Transporte
57
REDES DE
COMPUTADORES
Extensión con “N” Bloques del Paquete SACK para
Segmentos No Contiguos y No Consecutivos (Con Pérdidas)
(RESUMEN)
Si hay espacio en el campo de opciones TCP (máximo 60 octetos), se
pueden enviar hasta 4 bloques de información de control
TIPO=5
LONGITUD
(variable)
DATOS OPCIÓN
X1 – Y1
…X
n–
Yn
RECORDATORIO DE UN
SEGMENTO DE
INFORMACIÓN NO
CONTIGUO YA RECIBIDO
El bloque (X1 – Y1) debe
informar del segmento no
contiguo recibido más
recientemente
Nivel de Transporte
58
REDES DE
COMPUTADORES
TCP “A”
TIMEOUT
TCP “B”
SEGMENTOS NO
CONTIGUOS Y
CONSECUTIVOS
Se intenta agrupar
el máximo de octetos
de datos consecutivos
en cada paquete SACK
CONF = última CONF realizada
Nivel de Transporte
59
REDES DE
COMPUTADORES
TCP “A”
TCP “B”
CONFIRMACIONES A
SEGMENTOS NO
CONTIGUOS Y NO
CONSECUTIVOS
TIMEOUTS
última CONF realizada
Nivel de Transporte
60
REDES DE
COMPUTADORES
2 Tipos de Liberación de la Conexión
 Ordenada o consensuada (simétrica)
– La mayoría de los programas al terminar intentan cerrar ordenadamente todas las
conexiones abiertas
– Bit FIN en los dos sentidos (FIN = invitación al otro extremo a cerrar también)
– Aunque las conexiones son dúplex, para entender mejor la liberación total de la conexión, ésta se
considera formada por dos conexiones o circuitos simplex (en un solo sentido) y cada equipo
solo puede desconectar el sentido en el que él emite datos
– La desconexión puede iniciarla cualquiera de los dos equipos (el cliente o el servidor)
invitando al otro a cerrar
– El cierre de un sentido por parte de un equipo se interpreta como una ‘invitación’ a cerrar
al otro
– El que toma la iniciativa realiza un cierre activo o ‘active close’ y el otro lleva a cabo un
cierre pasivo o ‘passive close’
– La desconexión simétrica de TCP ofrece una seguridad razonable (pero no absoluta) de
que no se pierden datos de la aplicación
– Una vez efectuada la desconexión el equipo que realizó el “active close” mantiene un cierto
tiempo (2 MSL) la conexión viva por si aparecen segmentos retrasados
 Desordenada o abrupta o unilateral (asimétrica)
 Bit RST sin datos en un sentido
 Un equipo termina y cierra sin esperar a recibir confirmación
 No da oportunidad al otro equipo de enviar los datos que tuviera pendientes de la
aplicación, por lo que puede provocar la pérdida de información
Nivel de Transporte
61
REDES DE
COMPUTADORES
Liberación Ordenada de la Conexión
4 envíos
 LA
CONEXIÓN
TCP
SE
LIBERA
COMPLETAMENTE cuando cada entidad TCP,
después de haber transmitido todos sus datos, envía
en cada sentido un SEGMENTO SIN DATOS con el
bit FIN activado
 La confirmación al FIN=1 recibido, SIEMPRE CON
UN SEGMENTO SIN DATOS
Nivel de Transporte
62
REDES DE
COMPUTADORES
Liberación Ordenada de la Conexión
TCP “A”
(cierre activo)
10.0.0.1:80
ESTABLISHED
(estados)
Las confirmaciones de SEC en
segmentos FIN (al igual que en
los segmentos SYN) consumen
un nº de secuencia
TCP “B”
(cierre pasivo)
10.0.0.2:1030
ESTABLISHED
(estados)
FIN-WAIT-1
CLOSE-WAIT
Conexión
medio
cerrada
Conexión
medio
FIN-WAIT-2
cerrada
LAST-ACK
TIME-WAIT
CLOSED
2 MSL
Confirmación al FIN=1
recibido, siempre con
un segmento sin datos
CLOSED
MSL: Maximum Segment Lifetime
Nivel de Transporte
63
REDES DE
COMPUTADORES
CLIENTE
Fase de Liberación de la Conexión
APLICACIÓN
TCP “B”
TCP “A”
close
SERVIDOR
APLICACIÓN
Fase de transferencia
de datos
(SEC=m+DATOS=0)
SEC = última CONF
SEC = última CONF
CONF = SEC + 1
CONEXIÓN CERRADA en “A”
close
SEC = última CONF
CONF = SEC + 1
LIBERA LA CONEXIÓN, CONFIRMA y ESPERA
TEMPORIZADOR
Eliminación de segmentos retrasados
(2 VECES el promedio del RTT = MSL
(Maximum Segment Lifetime))
CONEXIÓN CERRADA en “B”
CONEXIÓN LIBERADA
Nivel de Transporte
64
REDES DE
COMPUTADORES
Ejemplo de la Fase de Liberación de la Conexión
SERVIDOR
CLIENTE
TCP “B”
TCP “A”
APLICACIÓN
APLICACIÓN
close
Fase de transferencia
de datos
(SEC=1501+DATOS=0)
CONF = SEC (último)+ DATOS (último)
SEC = última CONF
CONF = SEC + 1
close
SEC = última CONF
CONF = SEC + 1
CONEXIÓN LIBERADA en “A”
CONEXIÓN LIBERADA en “B”
Nivel de Transporte
65
REDES DE
COMPUTADORES
Ejemplo de la Fase de Liberación de la Conexión Con Datos
Conexión “cerrada” en “A” pero “abierta” en “B”
CLIENTE
APLICACIÓN
TCP “A”
TCP “B”
SERVIDOR
APLICACIÓN
close
FASE DE TRANSFERENCIA DE DATOS
CONF (enviada)= SEC+ DATOS
(del último segmento recibido)
SEC = última CONF
CONF = SEC + 1
CONEXIÓN CERRADA en “A”
FASE DE
TRANSFERENCIA
DE DATOS
SEC = última CONF
Entrega por
parte de “B”
de 300 octetos
de datos
CONF = SEC + 1
CONF (enviada)= SEC+ DATOS
(del último segmento recibido)
SEC = última CONF
Fase de transferencia
de datos
(SEC=904+DATOS=0)
close
CONF (enviada)= SEC+ DATOS
(del último segmento recibido)
SEC = última CONF
SEC = última CONF
CONF = SEC + 1
Nivel de Transporte
CONEXIÓN LIBERADA
CONEXIÓN CERRADA en “B”
66
REDES DE
COMPUTADORES
Desconexión Ordenada del Cliente con 3 mensajes
TCP “A”
El Servidor envía un FIN en lugar de un ACK previo
TCP B
(cierre activo)
(cierre pasivo)
10.0.0.1:80
ESTABLISHED
10.0.0.2:1030
ESTABLISHED
(estados)
(estados)
FIN-WAIT-1
CLOSE-WAIT
Conexión
medio
cerrada
Conexión
medio
LAST-ACK
cerrada
TIME-WAIT
CLOSED
2
MSL
CLOSED
MSL: Maximum Segment Lifetime
Nivel de Transporte
67
REDES DE
COMPUTADORES
Desconexión ordenada del Servidor
con 3 mensajes y 1 mensaje
Equipo 1
Equipo 2
Equipo 2
Inactividad
Inactividad
Libera
conexión
Equipo 1
Envía FIN y
arranca timer
Envía FIN y
arranca timer
(Timeout)
CLOSED
libera
conexión
CLOSED
Nivel de Transporte
68
REDES DE
COMPUTADORES
Pérdida de Segmentos en la Desconexión
Equipo 1
Envía FIN y
arranca timer
Libera
conexión
Equipo 2
Envía FIN y
arranca timer
Equipo 1
Equipo 2
Envía FIN y
arranca timer
Envía FIN y
arranca timer
(Timeout)
Envía ACK
(Timeout)
libera
conexión
Pérdida del ACK final
envía FIN y
arranca timer
Libera
conexión
Envía ACK
Envía FIN y
arranca timer
Libera
conexión
Pérdida del segundo FIN
Equipo 1
Equipo 2
Equipo 1
Equipo 2
Envía FIN y
arranca timer
Envía FIN y
arranca timer
Envía FIN y
arranca timer
Conectado
(timeout)
(timeout)
envía FIN y
arranca timer
envía FIN y
arranca timer
(N timeouts)
Libera
conexión
(Timeout)
libera
conexión
Pérdida del segundo y tercer FIN
Conexión
medio
abierta
(N timeouts)
Libera
conexión
Conectado
Cable cortado o desconectado
Nivel de Transporte
69
REDES DE
COMPUTADORES
Desconexión Desordenada o Abrupta o Unilateral
 Ocurre cuando uno de los dos equipos quiere cerrar
inmediatamente la conexión, sin esperar la confirmación del
otro
 Se lleva a cabo enviando un segmento con el bit RST sin
datos
– El equipo que emite el RST pasa inmediatamente al
estado CLOSED perdiéndose los datos que pudieran
venir de camino del otro equipo
– No se espera 2MSL
– El equipo que recibe el RST pasa también a estado
CLOSED de manera inmediata
Nivel de Transporte
70
← Tiempo
REDES DE
COMPUTADORES
Desconexión Desordenada o Abrupta
TCP “A”
TCP “B”
10.0.0.2:1039
10.0.0.1:80
ESTABLISHED
ESTABLISHED
(estados)
(estados)
Proceso abortado
CLOSED
CLOSED
Datos perdidos
Nivel de Transporte
71
NIVEL DE TRANSPORTE
TCP
CONTROL DE LA CONGESTIÓN
© 2012 Cisco and/or its affiliates. All rights reserved.
72
REDES DE
COMPUTADORES
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
Nivel de Transporte
73
REDES DE
COMPUTADORES
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
enlaces
del interfaz de salida
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
Nivel de Transporte
Y ENLACES DE SALIDA DE MENOR CAPACIDAD
74
REDES DE
COMPUTADORES
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?
– Respuesta: 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
 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
Nivel de Transporte
WT = min (WR , WC )
75
REDES DE
COMPUTADORES
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
Nivel de Transporte
76
REDES DE
COMPUTADORES
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.
2.
3.
4.
Comienzo Lento (Slow Start)
Prevención de la Congestion (Congestion Avoidance)
Retransmisión Rápida (Fast Retransmit)
Recuperación Rápida (Fast Recovery)
Nivel de Transporte
77
REDES DE
COMPUTADORES
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
Nivel de Transporte
78 78
REDES DE
COMPUTADORES
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
Si hay un ACK retrasado
ACKs
el incremento en el
…
tamaño de la ventana es
menor que la potencia de 2
Nivel de Transporte
79
REDES DE
COMPUTADORES
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
2ª interacción
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)
3ª interacción
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.
4ª interacción
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)
…
Nivel de Transporte
80
REDES DE
COMPUTADORES
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:
4.
–
–
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”
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
Nivel de Transporte
81
REDES DE
COMPUTADORES
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
Nivel de Transporte
82
REDES DE
COMPUTADORES
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
Nivel de Transporte
83
REDES DE
COMPUTADORES
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
Nivel de Transporte
84
REDES DE
COMPUTADORES
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
1,2,4,8,10,11,12,13,14,15,
16,17,18,19,20,21
Nivel de Transporte
85
REDES DE
COMPUTADORES
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
Nivel de Transporte
86
REDES DE
COMPUTADORES
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
Nivel de Transporte
87
REDES DE
COMPUTADORES
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
RETRANSMISIÓN
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
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
Nivel de Transporte
88
REDES DE
COMPUTADORES
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)
Nivel de Transporte
89
REDES DE
COMPUTADORES
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)
Nivel de Transporte
90
REDES DE
COMPUTADORES
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
6
…
7, 8, 9, …, 20 (timeout)
Nivel de Transporte
91
REDES DE
COMPUTADORES
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
Nivel de Transporte
92
REDES DE
COMPUTADORES
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
Nivel de Transporte
93
REDES DE
COMPUTADORES
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
PROTOCOLO
DESPLAZAMIENTO
SUMA DE COMPROBACIÓN
(CABECERA)
CABECERA
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
OPCIONES
RELLENO
DATOS
Nivel de Transporte
94
REDES DE
COMPUTADORES
Cabecera IPv4:DSCP-ECN
Punto de Código de Servicios Diferenciados
Differentiated Services
Code Point
4
4
TIPO DE SERVICIO
VERSIÓN
EC (Experienced Congestion) = Bit de Detección de Congestión
DSCP
TIEMPO DE VIDA
16
E
E
C
T C
LONGITUD TOTAL
0
IDENTIFICADOR
(TTL)
ECT (Explicit Congestion Notification) Capable Transport =
Bit de Transporte de Notificación Explícita de Congestión
8
Longitud
Cabecera
Para control de la congestión
D M
F F
PROTOCOLO
DESPLAZAMIENTO
SUMA DE COMPROBACIÓN
(CABECERA)
CABECERA
DIRECCIÓN ORIGEN
DIRECCIÓN DESTINO
OPCIONES
RELLENO
DATOS
Nivel de Transporte
70
95
REDES DE
COMPUTADORES
Cabecera Fija IPv6:DSCP-ECN
Punto de Código
de Servicios Diferenciados
Differentiated Services
Code Point
0
4
12
ECT/EC
31
Prioridad (8bits)
Versión
xxxxxxxx
Longitud de la carga útil
Etiqueta de flujo (20 bits)
Cabecera
siguiente
Dirección de origen (16 octetos)
Límite
de saltos
40
octetos
Dirección de destino (16 octetos)
Nivel de Transporte
96
REDES DE
COMPUTADORES
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
Nivel de Transporte
97
REDES DE
COMPUTADORES
Cabecera Fija IPv6:DSCP-ECN
0
Differentiated Services
Punto de Código
Code Point
de Servicios Diferenciados
4 Prioridad (8bits) 12
Versión
xxxxxxxx
Longitud de la carga útil
ECT/EC
31
Etiqueta de flujo (20 bits)
Cabecera
Límite
siguiente
de saltos
Dirección de origen (16 octetos)
40
octetos
Dirección de destino (16 octetos)
Nivel de Transporte
98
REDES DE
COMPUTADORES
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)
Nivel de Transporte
99
REDES DE
COMPUTADORES
Control de la Congestion en TCP
 Metodología por Señalización Explícita ECN (Explicit Notification
Congestion): RFC-3168 y RFC-2884
– 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
Nivel de Transporte
100
REDES DE
COMPUTADORES
Esquema IP-ECN/TCP-ECN
Bit de Transporte de
Bit de
Notificación Explícita de Congestión
Detección de Congestión
Transmisor
Router (cercano a la congestión)
ECT
1
IP
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
4
Bit de Eco de
Notificación Explícita de Congestión
Nivel de Transporte
101
NIVEL DE TRANSPORTE
TRANSPORTE RÁPIDO UDP
© 2012 Cisco and/or its affiliates. All rights reserved.
102
REDES DE
COMPUTADORES
Problemática de la Fiabilidad TCP
 Problema con TCP: Si se desea rapidez en el transporte, TCP retarda
dicho transporte porque ofrece un servicio orientado a conexión
FIABLE (tres fases y mecanismos de FIABILIDAD)
 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 o rendimiento o velocidad real) en el emisor
 Si la aplicación requiere un transporte rápido se monta sobre UDP
 Las retransmisiones TCP son inaceptables para aplicaciones en
tiempo real, al incrementar el retardo extremo a extremo
 Cada vez hay más aplicaciones sobre UDP
– Tráfico interactivo en tiempo real
 Vídeoconferencias o vídeollamadas, VoIP
– Tráfico no interactivo en tiempo real
 Streaming de audio y vídeo
Nivel de Transporte
103
REDES DE
COMPUTADORES
Protocolo UDP (User Datagram Protocol)
RFC-768, STD 0006
 Se utiliza en los siguientes escenarios:
En Aplicaciones interactivas (vídeoconferencias o
vídeollamadas, VoIP, etc.) y no interactivas
(streaming de audio y vídeo, etc.) en tiempo real
 Cuando el intercambio de mensajes es muy escaso y
los mensajes son cortos, por ejemplo, consultas al
DNS
 Los mensajes se envían en una RAL del tipo Ethernet
(sin errores físicos): DHCP, SNMP, …
 Cuando los mensajes se producen regularmente y no
importa si se pierde alguno: SNMP, NTP, …
 Cuando se envía tráfico de broadcast/multicast
Nivel de Transporte
104
REDES DE
COMPUTADORES
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 y
NO FIABLE PERO RÁPIDO
UDP
ROUTER
IP
…
IP
UDP
ROUTER
IP
IP
INTERFAZ DE
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ
INTERFAZ DE
RED
DE RED
DE RED
DE RED
DE RED
RED
Ethernet
…
WiFi
Las unidades de datos del protocolo UDP (“PDUs UDP”) se denominan
datagramas UDP o mensajes UDP
Nivel de Transporte
105
REDES DE
COMPUTADORES
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 y 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 flujo
 Multiplexación/Demultiplexación
 Transferencias simúltáneas en los dos sentidos (fulldúplex)
Nivel de Transporte
106
REDES DE
COMPUTADORES
UDP ofrece un SERVICIO NO ORIENTADO A CONEXIÓN y NO
FIABLE a los Procesos del Nivel de Aplicación
 Un SERVICIO NO ORIENTADO A CONEXIÓN
dispone de UNA FASE
1. TRASFERENCIA DE DATOS
 ¿Cómo accede la entidad de aplicación al servicio UDP?
– Haciendo uso tanto en el código del cliente como en el código
del servidor de unas funciones de comunicaciones estándares
pertenencientes a un API de programación de aplicaciones en
red (API de Red o API de Sockets) denominado INTERFAZ
DE SOCKETS
Nivel de Transporte
107
REDES DE
COMPUTADORES
INTERFAZ DE SOCKETS
IMPLEMENTACIÓN DEL SERVICIO UDP
APLICACIÓN
UDP
Localización conceptual
Interfaz de sockets
IP
RED
DE
ACCESO
ETHERNET
HARDWARE
Nivel de Transporte
108
REDES DE
COMPUTADORES
INTERFAZ DE SOCKETS
Universidad de Berkeley
El programador tiene que trabajar a bajo nivel
Aplicación
y llamar directamente
de Usuario
a las funciones de comunicaciones del API de
programación proporcionado por un sistema
Interfaz de Sockets
basado en un interfaz de sockets
UDP
TCP
IP
Interfaz de Acceso
y Hardware
Red
Nivel de Transporte
109
REDES DE
COMPUTADORES
PROTOCOLO UDP
Formato de un Datagrama UDP
RFC-768, STD 0006
Engloba dos tipos de información: Cabecera + Datos
Longitud Máxima Teórica
65.535 octetos
INFORMACIÓ DE CONTROL
CABECERA
Longitud Fija
CARGA ÚTIL para UDP
Longitud variable en función del tamaño de los mensajes
de aplicación, los cuales deben estar delimitados, a su
vez, en función de la MTU de salida
DATOS (Variable)
8 octetos
SDU del Nivel de Aplicación = La aplicación debe encargarse de delimitar el
tamaño máximo del campo DATOS en función de la MTU de salida )
Nivel de Transporte
110
REDES DE
COMPUTADORES
Formato de un Datagrama UDP
0Proceso de aplicación emisor
CABECERA
UDP
PUERTO ORIGEN
LONGITUD UDP
(8 octetos)
15 16
Proceso de aplicación receptor
31
PUERTO DESTINO
SUMA DE COMPROBACIÓN
DATOS (Variable)
A todo el datagrama UDP
(cabecera y datos)
Uso opcional:
Si la entidad UDP emisora
pone “todo a ceros” = No usar
Longitud en octetos del datagrama UDP (cabecera + datos) =
= Longitud
mínima de 8 octetos (cabecera sin datos)
= Longitud máxima TEÓRICA de 65.535 octetos pero la longitud total debe ser menor
debido a que la MTU = 1500 octetos
Nivel de Transporte
111
Descargar