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
435 visualizaciones desde el 5 de Julio del 2017
141,1 KB
27 paginas
Creado hace 16a (13/11/2007)
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

Buffer

TCP emisor

RC - Bloque III - Tema 7

Enviar

512

512

512

512

Aplicación

destino

Leer

1024 bytes

1024 bytes

Buffer

TCP receptor

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

Servidor:rlogin

0.0

0.139955 ACK retardado

0.539943 ACK retardado

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

1

3
4

6

7

9

2

5

8

6

ACKs retardados

Cliente:1111

Servidor:rlogin

1.339994 ACK retardado

10

12
13

1.739974 ACK retardado

15

1.940176 ACK retardado

17

2.140110 ACK retardado

19

RC - Bloque III - Tema 7

PSH 3:4(1), ACK 4 (e)
PSH 4:5 (1), ACK 4 (eco e)
ACK 5
PSH 4:5(1), ACK 5 (Enter)
PSH 5:7 (2), ACK 5 (CR, LF)
ACK 7
PSH 7:37 (30), ACK 5 (Wed Jan 26 …)
ACK 37

PSH 37:44 (7), ACK 37 (orca % )

ACK 44

11

14

16

18

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

1.157640
1.187501

11

1.427852
1.428025

1.457191
1.478429

1.727608
1.762913

1.997900

14
15

17

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

Servidor:rlogin

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

Servidor:8888

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

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

15

17

19

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

ACK 2, win 4096

14

16

18

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

Servidor:8888

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

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)

Segmento de
actualización
de ventana

Cliente:1111

Servidor:8888

10
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
FIN, PSH 7169:8193 (1024) ACK 1, win 4096

ACK 8194, win 0
ACK 8194, win 4096

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

17

ACK 2, win 4096

14
15
16

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

Imposible

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 ej
  • Links de descarga
http://lwp-l.com/pdf4856

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