PDF de programación - Tema 7 - Intercambio de datos TCP

Imágen de pdf Tema 7 - Intercambio de datos TCP

Tema 7 - Intercambio de datos TCPgráfica de visualizaciones

Publicado el 5 de Julio del 2017
509 visualizaciones desde el 5 de Julio del 2017
614,6 KB
30 paginas
Creado hace 12a (10/11/2008)
Bloque III: El nivel de transporte

Tema 7: Intercambio de datos TCP

Índice

• Bloque III: El nivel de transporte

– Tema 7: Intercambio de datos TCP

• Flujo de datos interactivo

– ACKs retardados
– Algoritmo de Nagle
– Modo de urgencia

• Flujo de datos no interactivo

– Control de flujo
– Control de congestión

• Referencias

– Capítulo 3 de “Redes de Computadores: Un enfoque 

descendente basdado en Internet”. James F. Kurose, Keith 
W. Ross. Addison Wesley, 2ª edición. 2003.

– Capítulos 19 y 20 de “TCP/IP Illustrated, Volume 1: The 
Protocols”, W. Richard Stevens, Addison Wesley, 1994.

RC ­ Bloque III ­ Tema 7

2

TCP: Intercambio de datos

• En TCP se consideran dos tipos de tráfico de datos:

– Interactivo: gran número de segmentos de pequeño tamaño 

(menos de 10 bytes). Por ejemplo: telnet, rlogin.

– No Interactivo: segmentos de gran tamaño, normalmente el 

máximo permitido por las limitaciones de la red. Por ejemplo: FTP, 
e­mail.

Aplicación

origen

Escribir

2048 bytes

Aplicación

destino

Leer

1024 bytes

1024 bytes

Buffer

TCP emisor

Enviar

Buffer

TCP receptor

512

512

512

512

RC ­ Bloque III ­ Tema 7

3

Flujo de datos interactivo

• Funcionamiento del telnet o rlogin:

– Envío de la tecla pulsada por el cliente
– ACK de la tecla pulsada por el cliente
– Eco de la tecla desde el servidor
– ACK del eco
Cliente

Pulsar tecla 

Dato (tecla pulsada)

A C K d e l d a t o
e c o d e l d a t o

Pantalla 

ACK del eco del dato

Servidor

 Nivel de aplicación

 eco

RC ­ Bloque III ­ Tema 7

4

Flujo de datos interactivo

• ACKs retardados:

– Objetivo: enviar el ACK + eco en un único datagrama.

• TCP no envía el ACK inmediatamente al recibir el dato, sino 

que retarda la salida del ACK esperando un tiempo para ver si 
hay datos para enviarlos con el propio ACK.

• El tiempo de espera es de 200 mseg:

– No en valor absoluto, sino que se utiliza un reloj que da ticks 

cada 200 mseg.

• Tanto en el cliente como en el servidor se utilizan los acks 

retardados.

200 msegs

ACK listo para ser enviado

ACK retardado hasta el
siguiente tick de reloj

RC ­ Bloque III ­ Tema 7

5

ACKs retardados

Cliente:1111

0.0

1

3
0.139955 ACK retardado
4

6
0.539943 ACK retardado
7

9
0.940112 ACK retardado

RC ­ Bloque III ­ Tema 7

PSH 0:1(1), ACK 1 (d)
PSH 1:2 (1), ACK 1 (eco d)
ACK 2
PSH 1:2(1), ACK 2 (a)
PSH 2:3 (1), ACK 2 (eco a)
ACK 3
PSH 2:3(1), ACK 3 (t)
PSH 3:4 (1), ACK 3 (eco t)
ACK 4

Servidor:rlogin

2

5

8

6

ACKs retardados

Cliente:1111

Servidor:rlogin

PSH 3:4(1), ACK 4 (e)
10
PSH 4:5 (1), ACK 4 (eco e)
ACK 5
12
PSH 4:5(1), ACK 5 (Enter)
13
PSH 5:7 (2), ACK 5 (CR, LF)
ACK 7
15
PSH 7:37 (30), ACK 5 (Wed Jan 26 …)
ACK 37
17
PSH 37:44 (7), ACK 37 (orca % )
ACK 44

11

14

16

18

7

1.339994 ACK retardado

1.739974 ACK retardado

1.940176 ACK retardado

2.140110 ACK retardado

19

RC ­ Bloque III ­ Tema 7

Flujo de datos interactivo

• El tráfico interactivo genera gran cantidad de paquetes de 

tamaño muy pequeño (1 byte datos + 20 cab. TCP + 20 cab. IP 
= 41 bytes) = tinygrams.
– En las redes de área local no presenta ningún problema
– En las WAN supone una gran sobrecarga para la red.

• Algoritmo de Nagle:

– Pretende resolver este problema, y se aplica en una 

conexión TCP de tráfico interactivo en una red de área 
extensa.

– Enunciado: “Una conexión TCP puede tener un único 

segmento pequeño que no haya sido confirmado. No se 
pueden enviar otros segmentos hasta recibir un ACK. En 
cambio, esos datos se almacenan y son enviados por TCP 
al llegar el ACK.”

– Es auto­ajustable: cuanto más rápido lleguen los ACKs  

más rápido se enviarán los datos.

RC ­ Bloque III ­ Tema 7

8

Algoritmo de Nagle

Cliente:1111

Servidor:rlogin

0.0

0.197694
0.232457

0.437593
0.464257

0.677658
0.707709

0.917762
0.945862

1

3

5

7

9

PSH 5:6(1) ACK 47, win 4096
PSH 47:48 (1) ACK 6, win 8192
PSH 6:7 (1) ACK 48, win 4096
PSH 48:49 (1) ACK 7, win 8192
PSH 7:9(2) ACK 49, win 4095
PSH 49:51 (2) ACK 9, win 8192
PSH 9:10 (1) ACK 51, win 4094
PSH 51:52 (1) ACK 10, win 8192
PSH 10:12 (2) ACK 52, win 4095

2

4

6

8

RC ­ Bloque III ­ Tema 7

9

Algoritmo de Nagle

Cliente:1111

Servidor:rlogin

1.157640
1.187501

11

1.427852
1.428025

1.457191
1.478429

14
15

1.727608
1.762913

17

1.997900

PSH 52:54 (2) ACK 12, win 8192
PSH 12:14 (2) ACK 54, win 4094
ACK 14, win 8190
PSH 54:56 (2) ACK 14, win 8192
PSH 14:17(3) ACK 54, win 4096
PSH 17:18(1) ACK 56, win 4096
PSH 56:59 (3) ACK 18, win 8191
PSH 18:21 (3) ACK 59, win 4093
PSH 59:60 (1) ACK 21, win 8189

10

12
13

16

18

RC ­ Bloque III ­ Tema 7

10

Algoritmo de Nagle

• Se usan 9 segmentos para enviar 16 bytes de datos.
• Segmentos 14 y 15 consecutivos, ¿cumplen el algoritmo de 

Nagle?
– Si, se corresponden con los ACKs 12 y 13, 

respectivamente, que se han recibido casi en el mismo 
instante (0.2 msegs de diferencia).

• Segmento 12 es un ACK retardado (servidor  cliente).
• ACK = TCP (nivel de transporte)
• Win = nivel de aplicación

• En algunos casos no interesa el algoritmo de Nagle.

– Por ejemplo, al utilizar las XWindows es necesario enviar 
mensajes pequeños (movimientos del ratón) sin retardos 
para conseguir una interacción real.

– En este caso, el algoritmo de Nagle puede introducir 

retardos adicionales al ejecutar una aplicación interactiva a 
través de una WAN, al generar eventos (pulsaciones, 
movimientos ratón, …) que producen datos multi­byte.

RC ­ Bloque III ­ Tema 7

11

Flag URG

• Modo de urgencia: permite a un extremo indicar que 
se han introducido datos urgentes en el flujo normal 
de datos.
– Se activa el flag de Urgencia (URG)
– Puntero de urgencia: offset a sumar al número de 

secuencia de la cabecera TCP para obtener el 
número de secuencia del último byte de los datos 
urgentes.

• Se utiliza en aplicaciones como telnet y rlogin cuando 
se pulsa la tecla de interrupción. O en el FTP cuando 
se aborta la transferencia de un fichero.

RC ­ Bloque III ­ Tema 7

12

Flujo de datos no interactivo

• También llamado flujo de datos en masa (bulk data flow).
• En este tipo de tráfico se generan pocos segmentos, pero de 

gran tamaño.

• El principal problema a resolver en este tipo de tráfico es el 

control de flujo:
– Evitar que un emisor rápido sature a un receptor lento.

• TCP utiliza una ventana deslizante: permite al emisor enviar 

múltiples paquetes antes de parar y esperar por el ACK, lo que 
da una mayor rapidez a este tipo de tráfico.

• Con un protocolo de ventana deslizante no es necesario 

confirmar todos los paquetes recibidos, sino que se pueden 
confirmar varios paquetes simultáneamente.

RC ­ Bloque III ­ Tema 7

13

Control de flujo

Cliente:1111

SYN 13281:13281(0)
win 4096, <MSS 1024>

Servidor:8888

1

3
4
5
6

9

S Y N 4 5 8 2 7 : 4 5 8 2 7 ( 0 )

A C K 1 , w i n 4 0 9 6 , < M S S 1 0 2 4 >
ACK 1, win 4096
PSH 1:1025 (1024) ACK 1, win 4096
PSH 1025:2049 (1024) ACK 1, win 4096
PSH 2049:3073 (1024) ACK 1, win 4096

ACK 2049, win 4096
ACK 3073, win 3072

PSH 3073:4097 (1024) ACK 1, win 4096

ACK 4097, win 4096

2

7
8

10

RC ­ Bloque III ­ Tema 7

14

Control de flujo

Cliente:1111

Servidor:8888

11
12
13

PSH 4097:5121 (1024) ACK 1, win 4096
PSH 5121:6145 (1024) ACK 1, win 4096
PSH 6145:7169 (1024) ACK 1, win 4096

ACK 6145, win 4096

PSH 7169:8193 (1024) ACK 1, win 4096

ACK 8193, win 4096

FIN 8193:8193 (0) ACK 1, win 4096
FIN 1:1 (0) ACK 8194, win 4096

14

16

18

ACK 2, win 4096

15

17

19

RC ­ Bloque III ­ Tema 7

15

Control de flujo

• El envío de los mensajes no es determinista, depende de 

múltiples factores: la carga de la red, la carga del receptor y 
emisor, …

• TCP utiliza ACKs acumulativos:

– ACK 2049: confirma que se ha recibido correctamente hasta 

el 2048, y que el siguiente byte que se espera recibir es el 
2049.

– Segmentos 7, 14 y 16 son ACKs acumulativos.

• Flag PSH (PUSH): notificación del emisor al receptor para 

enviar todos los datos recibidos a la aplicación.
– Datos recibidos en el segmento PSH + datos almacenados 

en el buffer

– Permite al emisor notificar al receptor que puede pasar los 

datos al receptor, que no es necesario esperar por más 
datos.

– No se puede especificar a nivel de aplicación. Es incluido 

automáticamente por TCP en cada grupo de datos 
transmitido.

RC ­ Bloque III ­ Tema 7

16

Control de flujo

• Emisor rápido, receptor lento

Cliente:1111

SYN 13281:13281(0)
win 4096, <MSS 1024>

Servidor:8888

1

3
4
5
6
7

Segmento
de
actualizació
n de
ventana

S Y N 4 5 8 2 7 : 4 5 8 2 7 ( 0 )

A C K 1 , w i n 4 0 9 6 , < M S S 1 0 2 4>
ACK 1, win 4096
PSH 1:1025 (1024) ACK 1, win 4096
PSH 1025:2049 (1024) ACK 1, win 4096
PSH 2049:3073 (1024) ACK 1, win 4096
PSH 3073:4097 (1024) ACK 1, win 4096

ACK 4097, win 0
ACK 4097, win 4096

2

8
9

RC ­ Bloque III ­ Tema 7

17

Control de flujo

• Emisor rápido, receptor lento (continuación)

Cliente:1111

Servidor:8888

Segmento
de
actualizació
n de
ventana

10
11
12
13

17

PSH 4097:5121 (1024) ACK 1, win 4096
PSH 5121:6145 (1024) ACK 1, win 4096
PSH 6145:7169 (1024) ACK 1, win 4096
FIN, PSH 7169:8193 (1024) ACK 1, win 4096
14
15
16

ACK 8194, win 0
ACK 8194, win 4096

FIN 1:1 (0) ACK 8194, win 4096

ACK 2, win 4096

RC ­ Bloque III ­ Tema 7

18

Control de flujo

• Ventana deslizante
– Funcionamiento:

Ventana ofrecida (receptor)

Ventana
utilizable
(emisor)

1 2 3 4 5 6 7 8 9 10 11 …

Enviado
y ACK

Enviado

y no
ACK

Puede
enviar

Imposibl
e enviar

– Ventana ofrecida (receptor): número de bytes que indica el 

receptor que puede recibir, en el momento de enviar el 
paquete.

– Ventana utilizable (emisor): número de bytes que se 

pueden enviar inmediatamente.

RC ­ Bloque III ­ Tema 7

19

Control de flujo

• Movimientos de la ventana:

– Cierre (el eje izquierdo se desplaza a la derecha): 

se envían y se agradecen datos.

– Apertura (el eje derecho se desplaza a la 

derecha): el proceso
  • Links de descarga
http://lwp-l.com/pdf4873

Comentarios de: Tema 7 - Intercambio de datos TCP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad