0% encontró este documento útil (0 votos)
28 vistas42 páginas

FR Tema3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas42 páginas

FR Tema3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 3

Capa de transporte
Fundamentos de Redes
Grado en Ingeniería Informática y dobles grados
Curso 3º

Jorge Navarro Ortiz


Departamento de Teoría de la Señal, Telemática y Comunicaciones
E.T.S. Ingenierías Informática y Telecomunicación – Universidad de Granada
C/ Periodista Daniel Saucedo Aranda, s/n - 18071 – Granada (Spain)
Teléfono: +34-958 241000, ext 20042 - Fax: +34-958 243032 - Email: [email protected]

it
Ingen ería
Telemá
UGR
ica

© 2022
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

2
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Objetivos del tema


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Comprender las funcionalidades y servicios de la capa de


transporte :
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Servicio de multiplexación/demultiplexación.
Servicio orientado a conexión frente a no orientado a
conexión.
Cómo conseguir una transferencia de datos fiable.
Cómo proporcionar control de flujo.
Cómo proporcionar control de congestión.
Cómo se han implementado estas funcionalidades en
Internet.

3
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Bibliografía
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Capítulo 10, Pedro García Teodoro, Jesús Díaz Verdejo y Juan


Manuel López Soler. TRANSMISIÓN DE DATOS Y REDES
DE COMPUTADORES, Ed. Pearson, 2017, ISBN: 978-0-273-
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

76896-8

Capítulo 3 James F. Kurose y Keith W. Ross. COMPUTER


NETWORKING. A TOP-DOWN APPROACH, 5ª Edición,
Addison-Wesley, 2010, ISBN: 9780136079675

Agradecimientos:
Transparencias originales de Juan Manuel López Soler, Pedro
García Teodoro, Jorge Navarro Ortiz, Departamento TSTC, UGR.

4
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

5
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

1. Introducción.
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Funciones y servicios de la capa de transporte:


Comunicación extremo a extremo (end-to-end).
Multiplexación/demultiplexación de aplicaciones ® puerto.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Protocolo UDP:
Multiplexación/demultiplexación de aplicaciones.
Servicio no orientado a conexión, no fiable.

Protocolo TCP:
Multiplexación/demultiplexación de aplicaciones.
Servicio orientado a conexión, fiable:
Control de errores y de flujo.
Control de la conexión.
Control de congestión.

Extensiones TCP

6
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

1. Introducción.
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Comunicación extremo a extremo (end-to-end):


© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

host A host B

aplicación APDU aplicación

TPDU
TCP/UDP TCP/UDP

nodo
IP intermedio IP

datagrama IP IP datagrama IP
Interfaz de red Interfaz de red

Interfaz de red

red 1 red 2

Internet

7
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

8
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

2. Protocolo de datagrama de usuario (UDP).


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

“User Datagram Protocol”: RFC 768.


Funcionalidad “best-effort”:
Servicio no orientado a conexión: no hand-shaking, no hay retardos de
establecimiento, cada TPDU es independiente.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Servicio no fiable: puede haber pérdidas.


No hay garantías de entrega ordenada.
No hay control de congestión: entrega tan rápida como se pueda.
Multiplexación/demultiplexación: transportar las TPDU al proceso
correcto.
0 16 31
Puerto origen Puerto destino
Longitud UDP (bytes) Comprobación
Aplicación 1 Aplicación 2 Aplicación 3 capa de aplicación (datos+cabecera) (cabecera+pseudocabecera)
puerto 1 puerto 2 puerto 3 datos
....
UDP capa de transporte

dirección IP
IP origen
IP capa de red
IP destino

00...00 protocolo Longitud UDP

9
Datagrama de usuario UDP.
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

2. Protocolo de datagrama de usuario (UDP).


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Multiplexación/demultiplexación: transportar las TPDU al proceso


correcto.
Existen puertos preasignados con servicios normalizados:
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Puerto Aplicación/Servicio Descripción


7 echo Eco
13 daytime Fecha
Ejemplos de
37 time Hora
puertos UDP
42 nameserver Servicio de nombres
preasignados
53 domain Servicio de nombres de domino
69 tftp Transferencia simple de ficheros
123 ntp Protocolo de tiempo de red

Otros puertos (>1024) están a libre disposición del desarrollador.

UDP se usa frecuentemente para aplicaciones multimedia: tolerantes


a fallos y sensibles a retardos.
Cada segmento UDP se encapsula en un datagrama IP.
10
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

11
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3. Protocolo de control de transmisión (TCP).


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Características del “Transmission Control Protocol”: RFC 793 (1122,


1323, 2018, 2581).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Servicio punto a punto.


Servicio orientado a conexión (exige un estado común entre el emisor y el
receptor: “hand-shaking”).
Entrega ordenada de las secuencias de bytes generadas por la aplicación
(“stream oriented”).
Transmisión full-duplex.
Mecanismo de detección y recuperación de errores (ARQ) con
confirmaciones positivas ACKs (acumulativas) y “timeouts” adaptables.
Servicio fiable ® control de congestión y control de flujo con ventanas
deslizantes con tamaño máximo adaptable.
Incorporación de confirmaciones (“piggybacking”).

12
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3. Protocolo de control de transmisión (TCP).


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Funcionalidades de TCP:
Multiplexación/demultiplexación de aplicaciones.
Control de la conexión (establecimiento y cierre).
Control de errores y de flujo.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Control de congestión.
TPDU TCP = Segmento TCP:

# de secuencia 0 4 10 16 31
del primer byte Puerto origen Puerto destino
del segmento
Numero de “secuencia” Cuenta de bytes
# del byte que se Número de “acuse” de recibo (no segmentos)
espera recibir
Hlen reservad Control de flujo
(acumulativos) UAPRSF “Ventana” del receptor (bytes)
(32 bits) o
Envío de datos
Longitud de Comprobación “Puntero” de datos urgentes
urgentes fuera
la cabecera TCP Opciones de banda
datos
.....

13 Cada segmento TCP se encapsula en un datagrama IP.


Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.1. TCP. Multiplexación / demultiplexación.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Multiplexación/demultiplexación de aplicaciones:
Transportar las TPDU al proceso correcto.
Existen puertos preasignados con servicios normalizados:
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Puerto Aplicación/Servicio Descripción


20 FTP-DATA Transferencia de ficheros: datos
21 FTP Transferencia de ficheros: control
22 SSH Terminal seguro
23 TELNET Acceso remoto
25 SMTP Correo electrónico
53 DNS Servicio de nombres de domino
80 HTTP Acceso hipertexto (web)
110 POP3 Descarga de correo

Otros puertos (>1024) están a libre disposición del desarrollador.


La “conexión TCP” se identifica por: puerto e IP origen y puerto e IP
destino.

14
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Control de la conexión:
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

TCP ofrece un servicio orientado a conexión.


El intercambio de información tiene tres fases:
Establecimiento de la conexión (sincronizar # de secuencia y reservar recursos).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Intercambio de datos (full-duplex).


Cierre de la conexión (liberar recursos).
¿Es posible garantizar un establecimiento/cierre fiable de la conexión sobre un
servicio (IP) no fiable? NO.
Establecimiento de la conexión: three-way handshake.

SYN=1
#secuencia =X
“Apertura activa”: cliente
“Apertura pasiva”: servidor
Campos involucrados:
* Bit S (SYN) del campo control
ACK=1
# acuse =X+1 * Campo secuencia (valor aleatorio)
SYN=1 * Campo acuse
#secuencia =Y
* Bit A (ACK) del campo control
#acuse =Y+1
ACK=1
15 A B
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de la conexión. Números de secuencia.


El número de secuencia es un campo de 32 bits que cuenta bytes en
módulo 232 (el contador se da la vuelta cuando llega al valor máximo).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

El número de secuencia no empieza normalmente en 0, sino en un valor


denominado ISN (Initial Sequence Number) elegido “teóricamente” al
azar; para evitar confusiones con solicitudes anteriores.
El ISN es elegido por el sistema (cliente o servidor). El estándar sugiere
utilizar un contador entero incrementado en 1 cada 4 µs
aproximadamente. En este caso el contador se da la vuelta (y el ISN
reaparece) al cabo de 4 horas 46 min.
El mecanismo de selección de los ISN es suficientemente fiable para
proteger de coincidencias, pero no es un mecanismo de protección frente
a sabotajes. Es muy fácil averiguar el ISN de una conexión e interceptarla
suplantando a alguno de los dos participantes.
TCP incrementa el número de secuencia de cada segmento según los bytes
que tenía el segmento anterior, con una sola excepción:
Los flags SYN y FIN, cuando están puestos, incrementan en 1 el número de secuencia.
La presencia del flag ACK no incrementa el número de secuencia.
16
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Establecimiento de la conexión. Caso sin incidencias (normal):


© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

17
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Establecimiento de la conexión. Caso de conexión simultánea:


© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

1
seq=101, ac , ack=10
k =301, seq=301

18
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Establecimiento de la conexión. Caso con SYN retrasados y


duplicados:
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

19
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de la conexión:
Cierre de la conexión: liberación de recursos.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

FIN=1 n “Cierre activo”


#secuencia =X n “Cierre pasivo”
n Campos involucrados:
* Bit F (FIN) del campo control
* Campo secuencia
* Campo acuse
ACK=1 * Bit A (ACK) del campo control
#acuse=X+1
FIN=1
#secuencia =Y
#acuse =Y+1
ACK=1
A B

Para evitar bloqueos por pérdidas, una vez comenzado el procedimiento de


CIERRE se usan timeouts (ver diagrama de estados: Maximum Segment
LifeTime = 2 min).
20
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de la conexión:
Cierre de la conexión: caso normal.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

TCP A TCP B
ESTABLISHED ESTABLISHED
seq = 100, ack=
300, FIN, A
FIN-WAIT-1 CK
CLOSE -WAIT

CK
101 , FIN, A LAST-ACK
seq=300, ack=

seq=101 ack=
TIME-WAIT , 301 , ACK

CLOSED
2
MSL

CLOSED

MSL: Maximum Segment Lifetime (normalmente 2 minutos)

Hay otras posibilidades de cierre de la conexión (ver el diagrama de


estados siguiente).
21
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

9. Se desea transferir con protocolo TCP un archivo de L bytes


usando un MSS de 536.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

a) ¿Cuál es el valor máximo de L tal que los números de


secuencia de TCP no se agoten?

b) Considerando una velocidad de transmisión de 155 Mbps


y un total de 66 bytes para las cabeceras de las capas
de transporte, red y enlace de datos, e ignorando
limitaciones debidas al control de flujo y congestión,
calcule el tiempo que se tarda en transmitir el archivo
en A.

22
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.2. TCP. Control de conexión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

inicio
Autómata de estados
CLOSED finitos TCP
apertura pasiva
-/ -
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

apertura activa
Leyenda: a/b
- / syn LISTEN
- / syn Segmento a recibido,
reset
syn / syn+ack
segmento b transmitido.
SYN_SENT syn / ack
SYN_RCVD

syn+ack / ack ack / -


ESTABLISHED - / fin
cierre pasivo cierre activo
fin / ack - / fin

CLOSE_WAIT fin / ack


FIN_WAIT_1 CLOSING

- / fin ack / - fin+ack / ack ack / -

ack / - fin / ack


LAST_ACK FIN_WAIT_2 TIME_WAIT

2MSL
23
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Mejorar rendimiento ⇒ ventana deslizante.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Control de errores: esquema ARQ con confirmaciones positivas y


acumulativas.
Campos involucrados:
Campo secuencia: offset (en bytes) dentro del mensaje.
Campo acuse: número de byte esperado en el receptor.
Bit A (ACK) del campo de control.
Campo comprobación: checksum de todo el segmento y uso de pseudo-
cabecera TCP:

Iporigen
IPdestino
00...00 protocolo longitudTCP

24
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de errores: escenarios de retransmisión (gráficas © James F.
Kurose).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Host A Host B Host A Host B


Seq=9 Seq=9
2, 8 b 2, 8 b
ytes d ytes d
ata Seq=1 ata

Seq=92 timeout
00, 20
bytes
data

Seq=100 timeout
timeout

=100
ACK 0
K =10
pérdida X AC 0
=12
ACK
Seq=9 Seq=9
2, 8 b 2, 8 b
ytes d ytes d
ata ata

K= 120
=100 AC
ACK

tiempo timeout prematuro y


Pérdida de ACK
ACK acumulativo
25
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de errores: generación de ACKs (RFC 1122, 2581).
Evento Acción del TCP receptor
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Llegada ordenada de segmento, Retrasar ACK. Esperar recibir al


sin discontinuidad, siguiente segmento hasta 500 mseg.
todo lo anterior ya confirmado. Si no llega, enviar ACK.

Llegada ordenada de segmento,


Inmediatamente enviar un único
sin discontinuidad, ACK acumulativo.
hay pendiente un ACK retrasado.

Llegada desordenada de segmento


Enviar un ACK duplicado, indicando el
con # de sec. mayor que el esperado,
# de sec. del siguiente byte esperado.
discontinuidad detectada.

Llegada de un segmento que completa Confirmar ACK inmediatamente si el


una discontinuidad parcial o totalmente. segmento comienza en el extremo
inferior de la discontinuidad.

26
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

11. Los hosts A y B se están comunicando a través de una conexión TCP


y B ya ha recibido y confirmado todos los bytes hasta el byte 126.
Suponga que a continuación el host A envía dos segmentos seguidos a B
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

que contienen, respectivamente, 70 y 50 bytes de datos. El envío de A


es ordenado, el número de puerto origen en dichos segmentos es 302 y
el de destino el 80. El host B envía una confirmación inmediata a la
recepción de cada segmento de A, sin esperar el retardo de 500 ms
del estándar.
a) Especifique los números de secuencia de ambos segmentos.
b) Si el primer segmento llega antes que el segundo ¿cuál es el
número de acuse y los puertos origen y destino en el primer
ACK que se envía?
c) Si el segundo segmento llega antes que el primero ¿cuál es el
número de acuse y los puertos origen y destino en el primer
ACK que envía?
d) Imagine que los segmentos llegan en orden pero se pierde el
primer ACK.
27
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de errores: ¿cómo estimar los “timeouts”?
Mayor que el tiempo de ida y vuelta (RTT).
Si es demasiado pequeño: timeouts prematuros.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Si es demasiado grande: reacción lenta a pérdida de segmentos.


Para situaciones cambiantes la mejor solución es la adaptable:

RTTmedido: tiempo desde la emisión de un segmento hasta la


recepción del ACK.
RTTnuevo = a.RTTviejo + (1-a).RTTmedido , aÎ[0,1]
Desviacionnueva = (1-x) * Desviacionvieja + x * | RTTmedido – RTTnuevo |

Timeout = RTTnuevo + 4 * Desviacion

Problema con ACKs repetidos: ambigüedad en la interpretación.


Solución: Algoritmo de Karn, actualizar el RTT sólo para los no
ambiguos, pero si hay que repetir un segmento incrementar el timeout:
toutnuevo = g . toutviejo , g = 2.
28
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

15. Si el RTT es 30 ms, la Desviación es 2 ms y se reciben ACKs


tras 26, 32 y 24 ms, ¿Cuál será el nuevo RTT, Desviación y
timeout? Usar α=0,125 y β=0,25. ¿Y si los dos primeros ACKs
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

tienen el mismo número de acuse y se usa el algoritmo de Karn?

29
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de errores: ¿cómo estimar los “timeouts”?
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Ejemplo de RTT medidos y estimados entre Amherst, Massachusetts y St. Louis,


Missouri.

a = 0.875

30
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de flujo:
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Procedimiento para evitar que el emisor sature al receptor con el envío de


demasiada información y/o demasiado rápido.
Es un esquema crediticio: el receptor informa al emisor sobre los bytes
autorizados a emitir sin esperar respuesta.
Se utiliza el campo ventana:

ventana útil emisor = ventana ofertada receptor – bytes en tránsito

Ventana
ofertada

Datos Datos TCP Aplicación


desde IP Buffer libre
en el buffer

Buffer del receptor

31
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Control de errores y de flujo:
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de flujo:
Emisor Receptor Buffer
0 4K
La aplicación
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

2 KB Vacío
escribe 2 KB Se q = 0

Win = 2048 2 KB
Ack = 2 0 4 8 ,
La aplicación
2 KB
escribe 3 KB Seq = 2048
Lleno
Emisor Win = 0
Ack = 4 0 9 6 ,
Bloqueado La aplicación
Win = 2048 lee 2 KB
Ack = 4 0 9 6 ,
El emisor 2 KB
puede enviar 1K Se q = 4 0 9 6
hasta 2 KB
3 KB

¿Alguna debilidad en el control de flujo?


¿Y si pierde el anuncion de WIN = 2048? à ¡Bloqueo! ¿Cómo evitarlo? à
temporizador de persistencia

32
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.3. TCP. Control de errores y de flujo.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de errores y de flujo:


Control de flujo:
Temporizador de
persistencia
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Posible problema: síndrome de la ventana tonta (RFC 813) si se utilizan segmentos


muy pequeños.
Posible mejora: la ventana optimista (RFC 813).
Es posible hacer entregas “no ordenadas”: Bit U (URG), campo puntero.
33 Solicitar una entrega inmediata a la aplicación: bit P (PSH).
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.4. TCP. Control de congestión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de congestión (RFC 2001):

Es un problema debido a la insuficiencia de recursos (ancho de banda de


© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

las líneas como buffer en routers y sistemas finales).

Es un problema diferente al control del flujo: involucra a la red y a los


sistemas finales.

Tiene naturaleza adelante-atrás.

Se manifiesta en pérdidas y/o retrasos en las ACKs.

Solución: en la fuente limitar de forma adaptable el tráfico generado.

34
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.4. TCP. Control de congestión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de congestión:
En el emisor se utilizan dos ventanas y un umbral.
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Bytes_permitidos_enviar =
min{VentanaCongestion,VentanaDelReceptor}

VentanaDelReceptor: utilizada para el control de flujo (de tamaño


variable) según el campo “ventana” recibido.

VentanaCongestion:
Inicialmente VentanaCongestion = 1 (num. segmentos)

Inicio Si VentanaCongestion < umbral, por cada ACK recibido


lento VentanaCongestion++ (crecimiento exponencial)

Prevención Si VentanaCongestion > umbral, cada vez que se recibe todos los ACKs pendientes
de la VentanaCongestion++ (crecimiento lineal)
congestión
Si hay timeout entonces
umbral=VentanaCongestion/2 y VentanaCongestion = 1
35
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

3.4. TCP. Control de congestión.


Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Control de congestión (gráfica © James F. Kurose):


© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Prevención
de la “Timeout”
congestión Reno

Tahoe

Inicio lento

36
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

37
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

4. Extensiones TCP.
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

• TCP se define con mútiples


“Sabores”
• Los diferentes sabores no
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

afectan a la interoperabilidad
entre los extremos
• Desde cualquier versión de
Linux con kernel mayor que la
2.6.19 se usa por defecto TCP
CuBIC

38
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

4. Extensiones TCP.
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

Adaptación de TCP a redes actuales (RFC 1323).

Ventana escalada:
Opción TCP en segmentos SYN:
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

Hasta 214x216 bytes (=230 bytes=1GB) autorizados.

Estimación RTT:
Opción TCP de sello de tiempo, en todos los segmentos.

PAWS (“Protect Against Wrapped Sequence numbers”):


Sello de tiempo y rechazo de segmentos duplicados.

Referencias:
RFCs
/usr/src/linux-2…/net/ipV4/tcp.c
/usr/include/netinet/tcp.h
http://www.cs.columbia.edu/~hgs/internet/tcp.html
Herramientas de análisis: ethereal/wireshark y tcpdump.
39
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

Esquema
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

3. Protocolo de control de transmisión (TCP).


1. Multiplexación/demultiplexación.
2. Control de conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.

40
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

5. Ejercicios
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

10. Considere un enlace con una velocidad de transmisión de 1


Mbps, un tiempo de ida y vuelta (RTT) de 30 ms y segmentos
fijos de 1500 bytes, incluyendo cabeceras y datos, ¿cuál tiene
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

que ser el tamaño de la ventana para que la eficiencia en la


transmisión (ratio entre el tiempo de transmisión y el tiempo
total en el emisor) sea de al menos un 95%?

41
Tema 3.del
[Nombre Capa
tema]de transporte en Internet

5. Ejercicios
Fundamentos de Redes – Grado en Ingeniería Informática y dobles grados

17. Suponiendo que la ventana de congestión es 18 KB y que se


dispara un timeout ¿Cuánto será la ventana de congestión si las
4 siguientes ráfagas de transmisiones, donde se envía la
© 2022 v1.0 – Juan M. López Soler y Jorge Navarro Ortiz

ventana completa, son exitosas? Suponed que el MSS es 1 KB.

42

También podría gustarte