Captulo 3: Continuacin
3.1 Servicios de la
capa transporte
3.2 Multiplexing y
demultiplexing
3.3 Transporte sin
conexin: UDP
3.4 Principios de
transferencia
confiable de datos
3.5 Transporte orientado
a la conexin: TCP
Estructura de un segmento
Transferencia confiable de
datos
Control de flujo
Administracin de conexin
3.6 Principios del control
de congestin
3.7 Control de congestin
en TCP
Capa Transporte 3-1
Control de flujo en TCP
Ya hemos visto cmo TCP asegura confiabilidad en la
transferencia, ahora veremos cmo consigue controlar el
flujo de datos.
El proceso aplicacin
El lado receptor de
TCP tiene un buffer
receptor:
puede ser lento en la
lectura desde la capa
de transporte.
Control de flujo
Tx no sobrecargar el
buffer del receptor
por transmitir
demasiado rpido
La idea es hacer coincidir la tasa de transmisin
con la tasa de lectura de la aplicacin.
Capa Transporte 3-2
Control de flujo en TCP: Cmo
Rx comunica el espacio
trabaja
(supongamos que receptor
descarta segmentos fuera
de orden)
Espacio libre en buffer
RcvWindow =
RcvBuffer-[LastByteRcvd LastByteRead]
libre a travs del valor
de RcvWindow en los
segmentos
As el receptor limita
datos en transito (sin
ACK) a RcvWindow
(Tx debe respetar el
no envo de ms datos
que RcvWindows)
Esto garantiza que el
buffer del Rx no se
rebase (overflow)
Capa Transporte 3-3
Captulo 3: Continuacin
3.1 Servicios de la
capa transporte
3.2 Multiplexing y
demultiplexing
3.3 Transporte sin
conexin: UDP
3.4 Principios de
transferencia
confiable de datos
3.5 Transporte orientado
a la conexin: TCP
Estructura de un segmento
Transferencia confiable de
datos
Control de flujo
Administracin de conexin
3.6 Principios del control
de congestin
3.7 Control de congestin
en TCP
Capa Transporte 3-4
Administracin de Conexin en TCP
Recordar: Transmisor y
receptor TCP establecen
una conexin antes de
intercambiar segmentos de
datos
TCP inicializa variables:
# de secuencia
buffers, informacin de
control de flujo (e.g.
RcvWindow)
client: Iniciacin de
conexin
Socket clientSocket = new
Socket("hostname","port
number");
server: contactado por
cliente
Socket connectionSocket =
[Link]();
Saludo de manos de tres vas
(Three way handshake):
host cliente enva
segmento TCP SYN al servidor
Paso 1:
Especifica # secuencia inicial
no data
Paso 2: host servidor recibe
SYN, responde con segmento
SYN & ACK
Servidor ubica buffers
Especifica # secuencia inicial
Paso 3: cliente recibe SYN & ACK,
responde con segmento ACK, el
cual podra contener datos.
Capa Transporte 3-5
Administracin de la conexin TCP (cont.)
Cliente Cierra la conexin:
Cliente cierra socket:
[Link]();
client
close
closing
Paso 1: host cliente enva
FIN
timed wait
responde con ACK. Ante un
cierre de conexin de la
aplicacin y enva FIN.
FIN
ACK
segmento TCP FIN al
servidor
Paso 2: servidor recibe FIN,
server
close
closing
A CK
closed
closed
Capa Transporte 3-6
Administracin de la conexin TCP (cont.)
Paso 3: cliente recibe FIN,
responde con ACK.
Entra en tiempo de
espera responder con
ACK a FINs recibidos
client
close
closing
server
FIN
ACK
Paso 4: servidor, recibe ACK.
FIN
close
closing
Nota: Con pequea
modificacin se puede
manejar FINs simultneos.
timed wait
Pasa a conexin cerrada.
A CK
closed
closed
Capa Transporte 3-7
Administracin de la Conexin TCP (cont)
Ciclo de vida
del servidor TCP
Ciclo de vida del
cliente TCP
Capa Transporte 3-8
Administracin de la Conexin TCP (cont)
cliente
CLOSED
servidor
Active open /SYN
Passive open
Close
Close
LISTEN
SYN/SYN + ACK
Send/ SYN
SYN/SYN + ACK
SYN_RCVD
ACK
Close/FIN
SYN_SENT
SYN + ACK/ACK
ESTABLISHED
Close/FIN
FIN/ACK
FIN_WAIT_1
ACK
FIN_WAIT_2
AC FIN/ACK
K
+
FI
N/
AC
K
FIN/ACK
CLOSE_WAIT
Close/FIN
CLOSING
ACK Timeout after two
segment lifetimes
TIME_WAIT
LAST_ACK
ACK
CLOSED
Capa Transporte 3-9
Captulo 3: Continuacin
3.1 Servicios de la
capa transporte
3.2 Multiplexing y
demultiplexing
3.3 Transporte sin
conexin: UDP
3.4 Principios de
transferencia
confiable de datos
3.5 Transporte orientado
a la conexin: TCP
Estructura de un segmento
Transferencia confiable de
datos
Control de flujo
Administracin de conexin
3.6 Principios del control
de congestin
3.7 Control de congestin
en TCP
Capa Transporte 3-
Principios del control de congestin
Congestin:
Informalmente: demasiadas fuentes envan
demasiados datos demasiado rpido para que la red lo
maneje
Es distinto a control de flujo!
Manifestaciones:
Prdidas de paquetes (buffer overflow en routers)
Grandes retardos (colas en los router)
Uno de los problemas top-10!
Capa Transporte 3-
Estrategias para control de congestin
Los podemos clasificar en dos grupos amplios:
Control de congestin
extremo a extremo:
No hay realimentacin
explcita de la red
La congestin es inferida
desde las prdidas y
retardos observados por
sistemas extremos
Es la estrategia usada por
TCP
Control de congestin
asistido por la red:
routers proveen
realimentacin a sistemas
extremos
Bit nico indicando
congestin (SNA,
DECbit, TCP/IP ECN,
ATM)
Explcitamente informa
a Tx la tasa el router
puede soportar
Capa Transporte 3-
Caso de estudio: Control de congestin en
ATM ABR
ABR: available bit rate:
servicio elstico
Si camino del Tx no tiene
mayor carga:
Tx debera usar ancho
de banda disponible
Si camino de Tx est
congestionado:
Tx reduce a un mnimo
la tasa garantizada
Celdas RM (resource
management):
Enviadas a intervalos por Tx y
entre celdas de datos
bits en celda RM fijados por
switches (asistido por la red)
Bit NI: no incrementar tasa
(congestin moderada)
Bit CI: Congestion Indication
Celdas RM son retornadas al Tx
por el Rx con bits intactos
ATM: Asynchronous Transfer Mode
Capa Transporte 3-
Caso de estudio: Control de congestin
en ATM ABR
Campo ER (explicit rate) de dos bytes en celda RM
Switch congestionado puede bajar valor de ER en la celda
Tasa de envo del Tx se ajusta a la tasa mnima soportable en el
camino
Bit EFCI en celdas de datos: es fijado en 1 en switch
congestionado
Si celda de dato precedente tiene el EFCI marcado, Tx marca bit
CI en celda RM retornada.
Capa Transporte 3-
Captulo 3: Continuacin
3.1 Servicios de la
capa transporte
3.2 Multiplexing y
demultiplexing
3.3 Transporte sin
conexin: UDP
3.4 Principios de
transferencia
confiable de datos
3.5 Transporte orientado
a la conexin: TCP
Estructura de un segmento
Transferencia confiable de
datos
Control de flujo
Administracin de conexin
3.6 Principios del control
de congestin
3.7 Control de congestin
en TCP
Capa Transporte 3-