Tema 2
Tema 2
Tema 2
ndice
1. 2. 3. 4. 5. 6. 7.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable. Transporte orientado a la conexin: TCP. Principios de control de congestin. Mecanismo de control de congestin de TCP.
ndice
1.
2. 3. 4. 5. 6. 7.
n -e nd le ca gi lo d t or sp an tr
En el lado receptor:
La capa de red extrae el segmento de la capa de transporte del datagrama recibido. Los sube a la capa de transporte y se procesa. Se ponen los datos del segmento a disposicin del proceso de la aplicacin receptor.
Analoga: 6 nios enviando cartas a sus 4 primos Sus servicios estn procesos = nios restringidos por el protocolo de red Mensajes app. = (retardos, BW). cartas en sobres Tambin puede ofrecer servicios que no hosts = casas ofrezca el protocolo de la capa de red Protocolo trans = subyacente. Ana y Pedro Capa de red: proporciona una Protocolo capa de comunicacin lgica entre hosts red= servicio postal
Profesor: Carlos Elvira Izurrategui
n -e nd le ca gi lo
red Enlace fsica red Enlace fsica red Enlace fsica red Enlace fsica red Enlace fsica
Profesor: Carlos Elvira Izurrategui
d t or sp an tr
aplicacin transport red Enlace fsica
ndice
1. 2.
3. 4. 5. 6. 7.
Multiplexacin y demultiplexacin
Demultiplexado en host rec.: Entrega de segmentos recibidos a su socket
= socket aplicacin P3 transporte red enlace fsica = proceso P1 P1 aplicacin transporte red enlace fsica P2 P4 aplicacin transporte red enlace fsica
Multiplexado en host emi.: Reune datos de mltiplies sockets, los encapsulndolos con la cabecera creando el segmento
host 1
host 2
host 3
Profesor: Carlos Elvira Izurrategui
Demultiplexacin. Funcionamiento
Host receptor recibe paquete o datagrama IP.
Cada datagrama tiene IP origen e IP destino. Cada datagrama lleva un segmento de capa de transporte. Cada segmento tiene un puerto origen y un puerto destino. 32 bits puerto or. # puerto dest #
Un socket UDP socket posee la dupla que lo identifica: (dest IP address, dest port number) En la capa de transporte se encapsula la dupla a los datos de aplicacin. La capa de transporte pasa el segmento a la capa de red: encapsula el segmento con cabecera (IP origen+IP destino).
IP hace el mximo esfuerzo por entregar el segmento al host receptor (pero IP no garantiza).
En el host receptor:
Se examina el nmero de puerto destino indicado en el segmento. Y se entrega el segmento a su socket correspondiente (con ese nmero de puerto). Al mismo socket destino pueden llegar informacin procedente de datagramas con IPs origen distintas y/o segmentos con puertos origen distintos.
Profesor: Carlos Elvira Izurrategui
P2
P3
P1 P1
cliente IP: A
DP: 6428
servidor IP: C
DP: 6428
cliente
IP:B
Solicitud de establecimiento de conexin: segmento TCP con #port y conjunto especial de bits de establecimiento de conexin en la cabecera TCP. Tambin se genera en el cliente un socket TCP para intercambiar datos. Al llegar la sol. de establecimiento de conexin al servidor, localiza el proceso (daemon) en el servidor que espera a aceptar la conexin. El proceso servidor crea un nuevo socket:
Socket socketConexion = socketAcogida.accept();
Un host servidor puede dar soporte a muchos sockets TCP simultneos, y cada uno de ellos queda identificado por los 4 valores.
P1 P4 P5 P6
SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157
P2
P1 P3
Cliente IP: A
Servidor IP: C
Cliente
IP:B
Los servidores web actuales utilizan un proceso y crean una hebra (subproceso) con un nuevo socket de conexin para cada conexin de un cliente.
Este tipo de servidores pueden tener muchos sockets de conexin (distintos identificadores) asociados al mismo proceso.
Si el cliente y el servidor utilizan conexiones persistentes, se intercambian los mensajes por el mismo socket. Si el cliente y el servidor utilizan conexiones no persistentes, cada mensaje solicitud/respuesta necesita abrir/cerrar una conexin TCP.
Esto puede afectar al rendimiento del servidor.
Los servidores web actuales utilizan un proceso y crean una hebra (subproceso) con un nuevo socket de conexin para cada conexin de un cliente.
Este tipo de servidores pueden tener muchos sockets de conexin (distintos identificadores) asociados al mismo proceso.
Si el cliente y el servidor utilizan conexiones persistentes, se intercambian los mensajes por el mismo socket. Si el cliente y el servidor utilizan conexiones no persistentes, cada mensaje solicitud/respuesta necesita abrir/cerrar una conexin TCP.
Esto puede afectar al rendimiento del servidor.
P1
P4
SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157
P2
P1 P3
Cliente IP: A
Servidor IP: C
Cliente
IP:B
ndice
1. 2.
3.
4. 5. 6. 7.
Encapsula los puertos origen y destino. Aade informacin (2 campos) de comprobacin de errores.
La capa de red encapsula el segmento en un datagrama (paquete) IP. Con el mejor esfuerzo entrega el segmento al host receptor.
UDP no tiene fase de establecimiento de conexin previa al envo del segmento con mensaje de aplicacin. Protocolo sin conexin. Ejemplos: DNS (53), RIP (520). Ventajas de UDP frente a TCP:
Mejor control en el nivel de aplicacin sobre qu datos se envan y cundo.
Se enva los datos de aplicacin empaquetados y se entregan directamente a capa de aplicacin. TCP no lo hace ya que tiene un mecanismo de control de congestin que regula el flujo.
Puede suponer problema se congestin en la red. Ejemplo: reproduccin masiva de vdeo a alta velocidad. -> Desbordamiento de paquetes en la cola de los routers. Prdidas de paquetes. No todos los emisores UDP llegarn a su destino. Emisores UDP pueden hacer disminuir mucho la velocidad de transmisin en los emisores TCP (estrangulamiento de sesiones TCP)
Una aplicacin puede disponer de servicio fiable de transferencia de datos trabajando con UDP.
Ojo: aadiendo los mecanismos de fiabilidad en la propia aplicacin
32 bits Longitud, en bytes de segmento UDT, incluyendo cabecera Port# origen Port# destino longitud checksum
ndice
1. 2. 3.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP.
4.
5. 6. 7.
Emisor
Receptor
Evento que origina la transicin de estado Acciones cuando tiene lugar el suceso
Estado: situacin del sistema en un instante dado. El estado siguiente est determinado por un nuevo evento
Estado 1
evento acciones
Estado 2
Lado emisor acepta datos de la capa superior a travs del suceso rdt_send(datos). Crea un paquete con datos packet=make_pkt(data) y enva un paquete al canal udt_send(packet). Lado receptor recibe un paquete del canal subyacente a travs del suceso rdt_rcv(packet). Crea un paquete con datos packet=make_pkt(data) y enva un paquete al canal udt_send(packet).
rdt_send(data) packet = make_pkt(data) udt_send(packet)
Esperar una llamada de abajo
Emisor
Receptor
Profesor: Carlos Elvira Izurrategui
receptor
rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(NAK)
emisor
Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK)
En el estado wait for ACK or NAK Rdt2.0 no puede obtener ms datos de la capa superior. Protocolos de parada y espera Stop-and-wait protocol
Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK)
Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK)
Solucin aplicada: aadir campo nuevo que numere los paquetes de datos (Nmero de secuencia).
El receptor comprueba el nmero de secuencia para ver si el paquete contiene datos nuevos o es una retransmisin. El protocolo de stop-and-wait utiliza un bit en el numero de secuencia. Si el bit mantiene el valor: retransmisin de paquete. Si el bit conmuta (desplazamiento a izquierdas): nuevo paquete.
Protocolo Rdt2.1:
Posee el doble de estados que rdt2.0. El protocolo refleja si el paquete que enva el E o el que recibe el R incluye un nmero de secuencia 1 o 0.
Profesor: Carlos Elvira Izurrategui
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)
El receptor:
Debe comprobar si el paquete recibido est duplicado.
El propio estado indica si est esperando un 0 o un 1 en num. sec.
Construccin del protocolo. Rdt 2.2 Misma funcionalidad que rdt2.1. Solo utiliza ACKs En el receptor:
En lugar de enviar un NAK, enva 2 respuestas ACKs. Incluye el nmero de secuencia del paquete que est siendo confirmado. make_pkt(ACK, 1, checksum)
En el emisor:
Recibe 2 repuestas ACKs consecutivas y duplicadas; equivale a corrupto. Comprueba el num sec del paquete que est siendo confirmado.
isACK(rcvpqt,1).
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK,1, chksum) udt_send(sndpkt)
Profesor: Carlos Elvira Izurrategui
Construccin del protocolo. Rdt 3.0 Canal subyacente puede perder paquetes (normal el redes).
Cmo detectar la prdida de paquetes. Pueden ser paquetes de datos o paquetes ACK. Solucin con temporizadores. Qu hacer cuando se pierde un paquete.
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) stop_timer Wait for ACK1 rdt_send(data) Wait for call 1 from above
rdt_rcv(rcvpkt)
Protocolo de bit alternante: ya que los nmeros de secuencia alternan valores entre 0 y 1.
d trans
L 8000bits = = = 8 s 9 R 10 bps
El ltimo bit del paquete llega al receptor tras t=RTT/2+dtrans=15.008 ms Supongo que dtrans del paquete ACK es despreciable (paquete pequeo), y el receptor enva ACK tan pronto como recibe el ltimo bit de datos. El ltimo bit del paquete llega al receptor tras t=RTT+dtrans=30.008 ms
Profesor: Carlos Elvira Izurrategui
RTT
emisor
L/R RTT + L / R
.008
30.008
= 0.00027
microsec
receptor
RTT
Llega el bit1 del pqt1 Llega el ltimo bit del pqt1. ACK Llega el ltimo bit del pqt2. ACK Llega el ltimo bit del pqt3. ACK
emisor
3*L/R RTT + L / R
.024
30.008
= 0.0008
microsecon
Protocolos pipelining.
Procesamiento en cadena de varios paquetes, en lugar de stop-and-wait de cada paquete.
El emisor enva varios paquetes sin esperar sus respectivos ACKs.
Protocolo Retroceder N (GBN) Go-Back-N: el emisor transmite simultneamente N paquetes sin tener que esperar a ser reconocidos.
Tamao de ventana N: nmero mximo de paquetes no reconocidos. Paquetes transmitidos y reconocidos: [0 base-1]. Paquetes transmitidos y no reconocidos: [base signumsec-1]. Paquetes que pueden ser transmitidos (si hay datos de capa superior): [signumsec base+N]
base=1 nextseqnum=1
Wait
rdt_rcv(rcvpkt) && corrupt(rcvpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer
Profesor: Carlos Elvira Izurrategui
SR: retransmite slo aquellos pqts que se sospeche que llegaron al receptor con error (corrupto o perdido).
Necesidad de que el receptor confirme individualmente que paquetes ha recibido. Tamao de ventana N. El receptor confirma un pqt correcto aunque est fuera de orden.
Profesor: Carlos Elvira Izurrategui
timeout(n):
resend pkt n, restart timer
ACK(n) in
[sendbase,sendbase+N]:
mark pkt n as received if n smallest unACKed pkt, advance window base to next unACKed seq #
send ACK(n) out-of-order: buffer in-order: deliver (also deliver buffered, in-order pkts), advance window to next not-yet-received pkt
[rcvbase-N,rcvbase1]
pkt n in
r
ACK(n) ignore
Profesor: Carlos Elvira Izurrategui
otherwise:
r
El tamao de ventana debe ser menor o igual que la mitad del tamao del espacio de n de sec.
ndice
1. 2. 3. 4.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable.
5.
6. 7.
TCP
Protocolo de capa de transporte de Internet, fiable y orientado a la conexin. Principios: mecanismos de deteccin de errores, retransmisiones, reconocimientos acumulativos, temporizadores, n de secuencia y de reconocimiento. RFCs: 793, 1122, 1323, 2018, 2581. Conexin TCP: proporciona servicio full-duplex (bidireccionalidad, simultaneidad). Conexin punto a punto (unicast). No es posible multidifusin (multicast, broadcast). Orientado a la conexin: establecimiento de la comunicacin con segmentos preliminares (inicializacin de variables de estado TCP y buffers).
Se ejecuta en sistemas terminales (procesos servidor y cliente). No se ejecuta en equipos de red (routers, etc).
Socket socketCliente = new Socket(nombrehost,NmeroPuerto);
TCP
socket door application writes data TCP send buffer
segment
socket door
RFC dice: debe transmitir esos datos en segmentos (enunciado ambiguo de RFC 793). Cliente TCP encapsula fragmento de datos formando segmento TCP. Los segmentos se pasan a la capa de red, donde se encapsulan formando paquetes/datagramas IP en la capa de red. Etc.
TCP servidor recibe segmento en el otro extremo y lo lleva al buffer recepcin. Cada conexin TCP posee buffers, variables y socket a un Profesor: Carlos Elvira proceso en un host origen y lo mismo en el host destino. Izurrategui
ndice
1. 2. 3. 4.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable.
5.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6. 7.
TCP. Estructura
Consta de:
Datos: fragmento de datos de aplicacin.
Limitado a MSS.
TCP. Estructura
32 bits URG: datos urgentes (no muy usado) ACK: ACK # vlido PSH: pasar datos ya (no muy usado) RST, SYN, FIN: Bits de establecimiento y cierre de la conexin
port # origen
port # destino
contaje de los bytes de datos (no segmentos!) # bytes que el receptor est dispuesto a aceptar
checksum
TCP. Nmeros de secuencia y reconocim. TCP percibe los datos como un flujo de bytes no estructurado pero ordenado.
El nmero de secuencia: hace referencia al flujo de bytes transferido (1 byte del flujo).
Ejemplo: archivo de 500000bytes con MSS de 1000 bytes.=> 500 segmentos.
1 segmento con num. sec= 0. 2 segmento con num. sec= 1000. Etc.
El nmero de reconocimiento incluye el nmero de secuencia del siguiente byte que espera recibir.
Considerar full-duplex y host A y B. Ejemplo1: A ha recibido de B bytes [0 539].
Siguiente segmento de A a B incluir num. Rec=540.
Profesor: Carlos Elvira Izurrategui
TCP. Estimacin del RTT y temporizacin. TCP con prdida de segmentos utiliza retransmisin controlada con temporizadores.
Tiempos de temporizacin?
Si se definen tiempos cortos => timeout.
Retransmisiones innecesarias.
Media mvil exponencialmente ponderada EWMA (Exponential Weight Moving Average). La influencia de las muestras pasadas decrece exponencialmente
Profesor: Carlos Elvira Izurrategui
300
RTT (milliseconds)
250
200
150
Es una media EWMA de la diferencia entre RTTMuestra y RTTEstimado. Si RTTMuestra tienen poca fluctuacin RTTDesv pequeo. Si RTTMuestra tienen gran fluctuacin RTTDesv grande. Valores recomendados =0.25
Intervalo de temporizacin:
IntervaloFinTemporizacin = RTTEstimado + 4 * RTTDesv
ndice
1. 2. 3. 4.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable.
5.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6. 7.
Los segmentos transportados en estos paquetes pueden sufrir estos problemas. TCP proporciona un servicio de transferencia de datos fiable sobre el servicio de mejor esfuerzo (no fiable) de IP.
Garantiza que el flujo de datos que un proceso extrae del buffer de recepcin TCP no est corrupto. No contiene huecos (prdidas de segmentos), ni duplicados. Est en orden, tal y como lo enva el extremo emisor.
Pero OJO: slo un nico temporizador de retransmisin, incluso aunque haya varios segmentos trasmitidos y an no reconocidos. (RFC 2988).
Transferencia de datos fiable en TCP Funcionamiento de TCP. Hay 3 eventos importantes en el emisor relacionados con la transmisin y retransmisin de datos.
Datos recibidos desde la aplicacin. Acciones
Crear segmento TCP con #numsec=SigNumSec. Si (timer no se est ejecutando) IniciarTemporizador.
El temporizador est asociado al segmento no reconocido ms antiguo.
Host B
es dat os
00
Host A
Host B
fin temporizacin
=1 ACK
Sec=92 timeout
perdido
Seq=9 2, 8 b yt es da tos
Sec=92 timeout
=100 ACK
Sec=9 2, 8 b yt
es dat os
20 K=1 AC
BaseEmisin = 100
BaseEmision = 120
Host B
es dat os
timeout
Sec=1 00, 20 b
Perdido
BaseEmisin = 120
120 CK= A
Fin de temporizacin.
IniciarTemporizador.
IntervaloFindeTemporizacion =2 * timoValorIntervaloFindeTemporizacin. Se trata de propocionar mecanismo simple de control de congestin congesti
Enviar inmediatamente un ACK duplicado indicando el nmero de secuencia del siguiente byte esperado (lmite inferior del hueco) reconociendo ambos segmentos ordenados. Enviar inmediatamente un ACK, suponiendo que el segmento comienza en el lmite inferior del hueco.
Profesor: Carlos Elvira Izurrategui
Llegada de un segmento que completa parcial o totalmente el hueco existente en los datos recibidos
El emisor suele enviar varios segmentos juntos (pipelining) y, si pierde uno, recibir muchos ACKs duplicado seguidos. Si se recibe 3 ACKs duplicado => el emisor realiza una retransmisin rpida (RFC 2581)
Profesor: Carlos Elvira Izurrategui
timeout
reenv ia
r 2 nd s egme nto
tiempo
Profesor: Carlos Elvira Izurrategui
ndice
1. 2. 3. 4.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable.
5.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6. 7.
Problema: si la aplicacin no lee los segmentos en un breve plazo el BufferRecepcin lo llena el emisor rpido.
Solucin: utilizar el servicio de control de flujo. Es un servicio de adaptacin de velocidades; velocidad que transmite la aplicacin emisor frente a la velocidad que recoge la aplicacin receptor.
Distinto concepto que control de congestin: el emisor se atasca por problemas (de congestin) de la red.
Profesor: Carlos Elvira Izurrategui
El valor de VentanaRecepcion es un campo de la cabecera TCP que permite al host receptor B informar al emisor A del espacio libre.
Profesor: Carlos Elvira Izurrategui
Inicialmente se cumple: VentanaRecepcin = BufferRecepcin. A su vez el emisor crea variables UltimoByteEnviado y UltimoByteReconocido. El host emisor A se debe asegurar durante la conexin que:
UltimoByteEnviado - UltimoByteReconocido <= VentanaRecepcin
Problema: Suponer el buffer recepcin lleno => VentanaRecepcion = 0, y B no tiene nada que enviar a A.
Proceso de aplicacin B vaca el buffer y TCP no enva nuevos segmentos a A con valores de VentanaRecepcin. Host A no es informado de que hay espacio en el buffer de recepcin de B (situacin de bloqueo de transmisin). Especificacin TCP requiere al host A que contina enviando segmentos con un byte de datos cuando la longitud de ventana de recepcin de B es cero.
Profesor: Carlos Elvira Izurrategui
ndice
1. 2. 3. 4.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable.
5.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6. 7.
Importancia de la conexin:
Puede aumentar el retardo percibido por los usuarios. Ataques de red por inundacin va SYN.
B/. El servidor extrae dicho segmento SYN del datagrama, asigna variables y buffers TCP a la conexin, y enva un segmento (SYNACK) de conexin concedida TCP.
Profesor: Carlos Elvira Izurrategui
C/. El cliente recibe el segmento SYNACK, asigna buffers y variables a la conexin, y vuelve a enviar otro segmento confirmando al servidor la conexin concedida.
Si puede contener datos de aplicacin. Cabecera. Bit SYN =0. Nmero reconocimiento:servidor_nsi+1. Nmero de secuencia: cliente_nsi+1.
cliente
servidor
nsi
Conex. Conce.
ACK
servidor
FIN
FIN= 1.
2. Servidor reconoce el segmento FIN al cliente. 3. El servidor enva segmento especial FIN al cliente.
ACK FIN
cerrrar
Tiempo espera
FIN = 1.
4. El cliente reconoce la desconexin al servidor.
ACK
Se liberan recursos.
cerrado
clientSocket.close();
Profesor: Carlos Elvira Izurrategui
Escenario con servidor que recibe segmento TCP con puerto o IP que no se corresponde con los sockets activos:
El host enva al origen un segmento especial de reinicio.
RST = 1.
No tengo socket para ese segmento, no lo reenves
ndice
1. 2. 3. 4. 5.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable. Transporte orientado a la conexin: TCP.
1. 2. 3. 4.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6.
7.
in : datos originales
out
Host B
out
Host B
2. Host A retransmite si sabe con seguridad que el paquete se perdi (hiptesis exagerada).
Observar en carga ofrecida R/2 se cumple: Velocidad transmisin:05R Velocidad de datos recibidos: 0,333R. Velocidad de datos retransmitidos: 0.166R
Profesor: Carlos Elvira Izurrategui
tiene que realizar retransmisiones para compensar paquetes descartados (perdidos) a causa de un desbordamiento en el buffer.
3. El emisor puede alcanzar el fin de la temporizacin prematuro y retransmitir un paquete retardado en cola que no se ha perdido todava.
Al receptor puede llegar original y retransmisin. Slo necesita uno de ellos. Se desperdicia la transmisin o retransmisin. Coste de la red congestionada: retransmisiones innecesarias del emisor causadas por retardos largos pueden llevar a que el route utilice ancho de banda del enlace para copias innecesarias.
R/2
R/2
R/2
R/3
out
out
out
R/2
R/4
in
R/2
in
in
R/2
a.
b.
c.
Escenario 3: 4 emisores, 4 routers con buffers finitos y rutas con varios saltos
Rutas solapadas con 2 saltos. Protocolo fiable con mecanismo de fin de temporizacin/retranmisin
Host A
in : datos originales
out
Host B
Escenario 3:
Todos tienen valores in, in y todos los enlaces tienen capacidad R [B/s]. Analizar conexin de Host A al C (comparte ruta con Host B al D y routers R1 y R2).
Para pequeos in difcil desbordar buffer.
out= in (tasa transf. = carga ofrecida).
in provocan out
Escenario 3:
Coste de descartar un paquete a causa de la congestin de red: Cuando un paquete se descarta a lo largo de una ruta, la capacidad de transmisin empleada en cada uno de los enlaces anteriores para encaminar dicho paquete hasta el punto en el que se ha descartado termina por desperdiciarse
Control de congestin en redes ATM Redes ATM: control de congestin en el servicio ABR (available bit-rate).
ATM emplea circuitos virtuales para la conmutacin de paquetes. Cada dispositivo de conmutacin a lo largo de la ruta mantiene el estado del circuito virtual seleccionado entre el origen y el destino. Un dispositivo de conmutacin puede conocer el comportamiento de cada emisor individual (velocidad media de transmisin). Se consigue control de congestin asistido por red. ABR es un servicio de transferencia de datos elstico.
Red poco cargada, ABR aprovecha todo el BW Red congestionada, ABD reduce velocidad.
Profesor: Carlos Elvira Izurrategui
Un emisor ajusta su velocidad segn los valores recibidos de CI, NI y EFCI en las celdas RM.
Algoritmos de ajuste complejos.
ndice
1. 2. 3. 4. 5.
La capa de transporte y sus servicios. Multiplexacin y demultiplexacion. Transporte sin conexin: UDP. Principios de un servicio de transferencia de datos fiable. Transporte orientado a la conexin: TCP.
1. 2. 3. 4.
Estructura de TCP Transferencia de datos fiable Control del flujo Gestin de la conexin
6.
7.
Control de congestin en TCP Control de congestin terminal a terminal (sin ayuda de red). Mtodo: cada emisor limita su velocidad de transferencia de trfico en funcin de la congestin percibida.
Emisor percibe que existe congestin; reduce su velocidad de transmisin. Caso contrario la aumenta.
Cmo limita el emisor TCP la velocidad a la que enva el trfico? Cmo percibe el emisor que existe congestin en la ruta? Qu algoritmo emplea el emisor para variar su velocidad de transmisin?
Profesor: Carlos Elvira Izurrategui
Control de congestin en TCP Mtodo del emisor TCP para limitar la velocidad de transmisin.
Recordar que:
En cada lado de la conexin existen buffers de emisin, recepcin Existe variables (BufferRecepcin, UltimoByteRecibido, etc).
Nueva variable VentanaCongestin: impone al emisor una restriccin sobre su velocidad de transferencia: la cantidad de datos no reconocidos no puede exceder el mnimo de entre VentanaCongestin y VentanaRecepcin.
UltimoByteLeido-UltimoByteReconocido <= min{VentanaCongestin, VentanaRecepcin}
Limita la cantidad de datos reconocidos por el emisor; de forma indirecta su velocidad de transmisin.
Profesor: Carlos Elvira Izurrategui
TCP es auto-temporizado: utiliza sus propios reconocimientos para provocar (temporizar) sus incrementos de VentanaCongestion.
Algoritmo de congestin. Arranque lento Arranque lento: al iniciar conexin TCP, valor de VentanaCongestin=1MSS.
Velocidad de transmisin: 1MSS/RTT. Se incrementa en 1 unidad en cada reconocimiento transmitido. Valores: 1, 2, 4, Exponencial. Se duplica en cada RTT. La velocidad inicial baja (de aqu el nombre) y crece exponencialmente. La finalizacin del crecimiento se da:
Prdida de paquete => VentanaCongestin=1 Variable umbral del arranque lento: se actualiza al valor VentanaCongestin/2.
Se termina arranque lento y se pasa a la etapa evitacin de la congestin.
Profesor: Carlos Elvira Izurrategui
Host A
Host B
one segm ent
time
Implementacin ms habitual:
VentanaCongestin=MSS/VentanaCongestin
Additive increase, resulting in increase of CongWin by 1 MSS every RTT Fast recovery, implementing multiplicative decrease. CongWin will not drop below 1 MSS. Enter slow start
Threshold = CongWin/2, CongWin = Threshold, Set state to Congestion Avoidance Threshold = CongWin/2, CongWin = 1 MSS, Set state to Slow Start Increment duplicate ACK count for segment being acked
SS or CA
SS or CA
Duplicate ACK
VentanaCongestin.
Final de etapa:
Decrecimiento multiplicativo.
Variantes de Reno (RFC 3782; RFC 2018). TCP Vegas: evita congestin manteniendo buena tasa de transferencia:
Profesor: Carlos Elvira Izurrategui
Tasa de transferencia TCP Cul es la tasa de transferencia media (velocidad media) de una conexin de larga duracin?.
Valor medio del diente de sierra.
Ignorar fases de arranque lento.
Tamao de Ventana: W. Velocidad media de transmisin = W/RTT TCP incrementa W en 1 MSS cada RTT hasta que se de una prdida. Suponiendo RTT y W constantes durante la conexin:
Velocidad de transmisin vara entre W/(2RTT) y W/RTT.
Evolucin y futuro de congestin en TCP Control de congestin original (RFC 2581). Evolucin de TCP: altas velocidades de aplicaciones de computacin reticular.
Ejemplo: TCP con segmento de 1500 bytes; RTT de 100ms; conexin 10Gbps.
W= 119304 segmentos Si se pierden?
Si deseo mantener la tasa media de transferencia perdindose una fraccin L de los transmitidos. 1.22 MSS Probabilidad de prdidas: 2 10-10 RTT L 1 prdida cada 5000000000 segmentos