Tema 3 y 4 Transporte UDP TCPv1
Tema 3 y 4 Transporte UDP TCPv1
Tema 3 y 4 Transporte UDP TCPv1
Para qu sirve?
2
La capa de transporte
Objetivos
3
Multiplexacin/demultiplexacin lgica
Transferencia de datos fiable
Control de flujo
Control de congestin
La capa de transporte
Contenidos
4
1.
2.
3.
4.
5.
6.
La capa de transporte
Servicios de transporte
5
application
transport
network
data link
physical
application
transport
network
data link
physical
La capa de transporte
Control de congestin
Control de flujo
Gestin de conexin
Garanta de retardo
Garanta de seguridad
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
La capa de transporte
Contenidos
7
1.
2.
3.
4.
5.
6.
7.
La capa de transporte
Requisitos direccionamiento
8
Transporte
TCP
UDP
Red
17
Nmero
de Puerto
Direccin
de Protocolo
IP
La capa de transporte
Multiplexacin/Demultiplexacin
9
La capa de transporte:
Recoge datos de distintos procesos en un equipo origen: Multiplexa.
Los entrega a otros procesos en equipo(s) destino: Demultiplexa.
La capa de transporte
Multiplexacin/Demultiplexacin
10
Multiplexacin en el emisor:
Demultiplexacin en el receptor:
Entrega de segmentos
al socket correcto
= proceso
= socket
application
P3
P1
P1
application
P2
P4
application
transport
transport
transport
network
network
network
link
link
link
physical
host 1
physical
host 2
physical
host 3
La capa de transporte
32 bits
Nm. Puerto Origen
Datos de Aplicacin
(mensaje)
Demultiplexacin en UDP
12
Direccin IP destino
Puerto destino
Demultiplexacin en UDP
13
P2
PO: 6428
PD: 9157
Cliente
IP: A
P1
P1
P3
PO: 9157
PD: 6428
PO: 6428
PD: 5775
Servidor
IP: C
PO: 5775
PD: 6428
Cliente
IP:B
Demultiplexacin en TCP
14
Dir IP origen
Puerto origen
Dir IP destino
Puerto destino
La capa de transporte
Demultiplexacin en TCP
15
P4
P5
P2
P6
P1P3
PO: 5775
PD: 80
IP_O: B
IP_D:C
Cliente
IP: A
PO: 9157
PD: 80
IP_O: A
IP_D:C
Servidor
IP: C
PO: 9157
PD: 80
IP_O: B
IP_D:C
Cliente
IP:B
16
P2
P4
P1P3
PO: 5775
PD: 80
IP_O: B
IP_D:C
Cliente
IP: A
PO: 9157
PD: 80
IP_O: A
IP_D:C
Servidor (Web)
IP: C
PO: 9157
PD: 80
IP_O: B
IP_D:C
Cliente
IP:B
La capa de transporte
17
La capa de Transporte
Transporte sin conexin: UDP (User Datagram Protocol)
TELNET
p2
FTP
...
p1
p3
Router
UDP (TCP
Red (IP)
Red (IP)
Subred 1
TELNET
p2
UDP (TCP
Red (IP)
Subred 2
...
p3
16
31
Puerto origen
Puerto destino
Longitud
Checksum
Datos
Figure 7.20 UDP datagram format: (a) UDP header fields; (b) fields used in pseudo header
for computation of checksum (Ref. Fred Halsall. Redes de Comp. e Internet)
Clculo de checksum
Datagrama UDP
Direcciones IP de origen y destino
Cdigo de tipo de protocolo de UDP segn IP
Longitud del datagrama UDP
24
La capa de Transporte
Transporte orientado a conexin: TCP
25
26
Deteccin de errores
Retransmisiones
Asentimientos acumulativos
Nmeros de secuencia
Temporizadores
Tema 3: La capa de Transporte
27
Orientado a conexin
Los procesos de Aplicacin, en sistemas finales, primero deben
establecer-acordar la comunicacin
Las partes (Cliente y Servidor) inician diferentes variables de estado para TCP
28
Conexin TCP
Full-duplex Bidireccional simultnea
Punto a punto
No posibilita multidifusin ni difusin
Acuerdo en tres fases (three-way handshake)
29
Cliente
http://media.pearsoncmg.com/aw/aw_kurose_network_4/applets/flow/FlowControl.htm
Servidor
30
31
Cabeceras obligatorias
20 octetos
Cabeceras opcionales
Longitud variable
Para chequear la
integridad del
segmento.
Se calcula igual
que en UDP
Cuerpo MSS
28
31
32
33
34
35
36
39
32
En palabras de 32 bits
Si est vaco 20 octetos
URG, ACK, PSH, RST, SYN, FIN
33
ACK
PSH
URG
Para indicar que el segmento tiene datos que han sido marcados como
urgentes por la capa superior Campo Puntero de datos urgente vlido
Tema 3: La capa de Transporte
34
Nmero de secuencia
Indica el N del primer octeto del segmento, respecto al flujo total de octetos
Indica lo que se enva
Nmero de reconocimiento
Indica el N de secuencia del siguiente octeto que se espera recibir
Indica lo que se espera recibir
Para minimizar posibilidad de coincidencia con segmentos antiguos que estn en la red
35
Reconocimientos acumulativos
TCP slo confirma (reconoce) hasta el primer octeto que falta en el flujo
36
37
38
39
Fin de temporizacin
TCP retransmite segmento asociado a dicha temporizacin*
Se reinicia el Temporizador
40
Escenario posible
TCP espera
ACK = 100
Duplicado,
TCP lo
descarta
41
Escenario posible
Inicio del
Temporizador para
N de Sec = 100
Fin del
Temporizador para
N de Sec = 100
42
Escenario posible
43
44
45
Inicio del
Temporizador para
N de Sec = 100
46
47
Emisor slo necesita mantener los Ns BaseEmision y SigNumSec (ver Fig. 3.19)
48
Importante
Control de flujo NO ES LO MISMO que control de la congestin, si bien
ambos conllevan a frenar al Emisor
49
Ventana de recepcin
Variable que conoce Emisor TCP
Proporciona informacin del espacio libre en el buffer del Receptor
UltimoByteLeido
UltimoByteRecibido
Tema 3: La capa de Transporte
50
51
VentanaRecepcion = BufferRecepcion
Emisor
52
Si Receptor:
Buffer lleno VentanaRecepcion = 0 Se notifica al Emisor
NADA que enviar Proceso de Aplicacin saca datos del buffer, pero NO enva
segmentos al Emisor (ni siquiera ACKs)
SOLUCIN
Cuando Emisor conoce que el Receptor tiene lleno el buffer (VentanaRecepcion = 0)
53
54
55
NO contiene datos
Contiene informacin de control
(nsi = nmero de secuencia inicial)
Campo N de secuencia = nsi_servidor (seleccionado de manera aleatoria)
Campo N de reconocimiento = nsi_cliente + 1
Indicador SYN activado SYN = 1
Indicador ACK activado ACK = 1
Tema 3: La capa de Transporte
56
57
58
Paso 1
Parte que inicia
Paso 2
La otra Parte
Paso 3
La otra parte
Paso 4
Parte que inici
59
Buffer y variables
Ns de puerto
Los Ns de Secuencia se
utilizan igual que en la fase de
establecimiento de la conexin
60
61
Diagrama de
Estados de
TCP
Estados
Establecimiento de conexin
Establecimiento
normal (Cl-S)
Conexin
simultnea
(colisin)
Three Way
Handshake:
Diagrama de
estados
completo
66
El nmero de
secuencia permite
identificar la
conexin fallida a
resetear
Liberacin de conexin
Cierres de conexin
Normal
3 vas
Simultneo
Cierre de tres vas:
Partido
Recuperacin de fallos
Si se produce restart en uno de los dos sistemas, se pierde la informacin de estado y las
conexiones activas
Quedan las conexiones medio abiertas (en el lado que no ha cado)
El lado que ha cado y se recupera puede enviar RSTs al otro para cerrar rpidamente
las conexiones.
El manejo a nivel de aplicacin de la reconexin es resp. del usuario. Peligro de
inconsistencia de datos.
72
La capa de Transporte
Principios del control de congestin
73
74
Congestin de la red
Desbordamiento de los Buffers de los Routers a consecuencia del
aumento del trfico en la red
75
Solucin de la congestin
76
77
Es el caso de TCP
78
Se utiliza, p.e:
En la prctica NO se utiliza
79
Entonces, Receptor notifica al Emisor Tiempo de notificacin > RTT entre los Sistemas finales
Tema 3: La capa de Transporte
80
La capa de Transporte
Mecanismo de control de congestin de TCP
TCP es auto-temporizado
Rapidez de incremento de
la Ventana de Congestin
en funcin de la frecuencia
de los ACKs
Resumiendo
TCP utiliza ACKs y sucesos de prdidas de segmentos como indicadores del estado
de la red
Compromiso:
Obligatorio en TCP
Obligatorio en TCP
Por ejemplo:
Luego:
Valor de la VC se incrementa 1 MSS por cada primer ACK de un segmento
transmitido
Y as sucesivamente
La velocidad de transmisin:
Figure 3.51
Valor VC = Umbral
Redefine e inicializa la variable de estado Umbral, que establece el Umbral de Arranque Lento:
Umbral = 0,5 (Valor VC cuando se detecta congestin)
Establece VC = 1 MSS
Inicia nuevamente el modo Arranque Lento
Valor VC = Umbral
Se asume congestin en la red, pero menos severa que por vencimiento del Timeout
Umbral = 0,5 (Valor VC cuando se detecta congestin)
VC = Umbral + 3
Se pasa al modo Recuperacin Rpida
Tema 3: La capa de Transporte
(1 / VC) MSS por cada ACK recibido Un MSS cada vez que se recibe un N de ACKs = VC
Ejemplo:
Pero la red est entregando segmentos, el receptor est recibiendo segmentos, as lo indica la llegada de
ACKs duplicados
Por tanto, TCP se comporta de manera menos drstica que cuando vence el Timeout, y establece:
Ver
diapositiva 16
VC VC + MSS
Se establece VC = 1 MSS
TCP Tahoe
TCP Reno
VC = 1 MSS
umbral = 64 KB
contadorACKdupl = 0
Arranque
lento
Fin Timeout
umbral = VC/2
VC = 1 MSS
contadorACKdupl = 0
Retransmitir Segmento que falta
contadorACKduplicado == 3
ACK nuevo
VC = VC + MSS
ContadorACKdupl = 0
Transmitir seg. nuevo(s) cdo sea posible
VC umbral
Fin Timeout
umbral = VC/2
VC = 1 MSS
contadorACKdupl = 0
Retransmitir segmento que falta
Fin Timeout
umbral = VC/2
VC = 1
contadorACKdupl = 0
Retransmitir segmento que falta
ACK nuevo
VC = VC + MSS(MSS/VC)
contadorACKdupl = 0
Transmitir segmento(s) nuevo(s) cuando sea posible
Evitacin
de la
congestin
ACK duplicado
contadorACKdupl ++
Nuevo ACK
VC = umbral
contadorACKdupl = 0
contadorACKdupl == 3
umbral= VC/2
VC = umbral + 3
Retransmitir segmento que falta
umbral = VC/2
VC = umbral + 3
Retransmitir segmento que falta
Recuperacin
rpida
Figura 3.52
ACK duplicado
VC = VC + MSS
Transmitir segmento(s) nuevo(s) cuando sea posible
Supuestos:
Se ignora fase inicial de Arranque Lento, y
Prdida de segmentos slo por recepcin de tres ACKs duplicados
Decrecimiento multiplicativo
Rendimiento de la red
Tema 3: La capa de Transporte
Entonces
Tema 3: La capa de Transporte
Siendo:
TTM-TCP: Tasa de Transferencia Media de una conexin TCP
W: tamao de VC cuando se produce prdida de un segmento
RTT: tiempo de ida y vuelta
24
Tamao ventana
W
3W/4
W/2
L: tasa de prdidas
RTT: tiempo de ida y vuelta
MSS: tamao mximo del segmento
25
Equidad TCP
102
Para que CC-TCP sea equitativo, respecto al reparto del ancho de banda de
un enlace compartido, debe cumplirse:
Para:
Equidad TCP
103
Figure 3.55
Supuestos:
Figure 3.56
Equidad TCP
104
Equidad UDP
105
Resultado:
Puede ocurrir que trfico UDP desproporcionado termine por expulsar al trfico TCP
En consecuencia:
RFC 4340
RFC 5348