Este documento describe la capa de transporte en Internet, incluyendo el protocolo UDP y TCP. UDP proporciona un servicio no orientado a conexión y no fiable, mientras que TCP ofrece un servicio orientado a conexión y fiable mediante mecanismos como el control de errores, flujo y congestión. El documento explica estas funcionalidades y cómo se implementan en los protocolos de transporte clave de Internet.
1. Tema3.pdf
PruebaAlien
Tecnologías de Red
4º Grado en Ingeniería Informática
Escuela Técnica Superior de Ingenierías Informática y de Telecomunicación
Universidad de Granada
Reservados todos los derechos.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
3. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
2/42
Bibliografía básica:
Para saber más…
Agradecimientos:
Transparencias originales de Juan Manuel López Soler, Pedro García Teodoro, Jorge Navarro
Ortiz, Departamento TSTC, UGR.
Capítulo 3 James F. Kurose y Keith W. Ross. COMPUTER
NETWORKING. A TOP-DOWN APPROACH, 5ª Edición, Addison-
Wesley, 2010, ISBN: 9780136079675.
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-
76896-8
TEMA 3: Capa de Transporte en Internet
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
4.
5. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
3/42
Objetivo de este capítulo:
Comprender las funcionalidades y servicios de la capa de transporte.
• Conocer el concepto de puerto
• Identificar y distinguir un servicio orientado a conexión frente a no orientado a conexión
• Comprender cómo conseguir una transferencia de datos fiable (sin errores)
• Comprender cómo proporcionar control de flujo
• Comprender cómo proporcionar control de congestión
• Comprender cómo se han implementado estas funcionalidades y servicios en Internet
TEMA 3: Capa de Transporte en Internet
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
6. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
4/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
7. INTRODUCCIÓN
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2013/2017.
T
EMA
3
5/42
• Funciones y servicios de la capa de transporte:
Ofrece una comunicación extremo a extremo (end-to-end).
Realiza la multiplexación/demultiplexación de aplicaciones puerto.
• Protocolo UDP:
Realiza la multiplexación/demultiplexación de aplicaciones.
Ofrece un servicio no orientado a conexión, no fiable (sin recuperación de errores).
• Protocolo TCP:
Realiza la multiplexación/demultiplexación de aplicaciones.
Ofrece un servicio orientado a conexión, fiable que incluye:
Control de errores y de flujo.
Control de la conexión.
Control de congestión.
• Extensiones TCP
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
8. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
INTRODUCCIÓN
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2013/2017.
T
EMA
3
6/42
Capa de transporte: comunicación extremo a extremo (end-to-end):
red 1 red 2
IP
Interfaz de red
datagrama IP datagrama IP
Internet
aplicación
TCP/UDP
IP
Interfaz de red
host A
aplicación
TCP/UDP
IP
Interfaz de red
host B
TPDU
APDU
nodo
intermedio
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
9. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
7/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
10. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
USER DATAGRAM PROTOCOL (UDP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
8/42
• “User Datagram Protocol”: RFC 768.
• Ofrece una funcionalidad denominada como “best-effort” (de buena voluntad):
• Es un servicio no orientado a conexión: no hand-shaking, no hay retardos de
establecimiento, cada TPDU es independiente.
• Resulta en un servicio no fiable: puede haber pérdidas.
• No hay garantías de entrega ordenada.
• No hay control de congestión, No hay control de flujo: entrega tan rápida como se pueda.
• Realiza la multiplexación/demultiplexación: transportar las TPDU al proceso correcto.
Datagrama de usuario UDP.
0 16 31
Puerto origen Puerto destino
Longitud UDP (bytes)
(cabecera+datos)
Comprobación
(cabecera+datos+pseudocab.)
datos
....
IP origen
IP destino
00...00 protocolo Longitud UDP
IP
Aplicación 1 Aplicación 2 Aplicación 3
capa de red
capa de aplicación
capa de transporte
puerto 1 puerto 2 puerto 3
UDP
dirección IP
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
11. USER DATAGRAM PROTOCOL (UDP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
9/42
• Multiplexación/demultiplexación: el objetivo es transportar las TPDU al proceso correcto.
Para ello se usan los puertos números enteros de 2 bytes que identifican al proceso origen
y al proceso destino.
• Existen puertos preasignados con servicios normalizados:
• Otros puertos (>1024) están a libre disposición del desarrollador.
• UDP se usa frecuentemente para aplicaciones multimedia, que como sabemos son tolerantes
a fallos y muy sensibles a los retardos (no admiten recuperaciones de errores)
• Cada segmento UDP se encapsula en un datagrama IP.
Puerto Aplicación/Servicio Descripción
53 DNS Servicio de nombres de domino
69 TFTP Transferencia simple de ficheros
123 NTP Protocolo de tiempo de red
161 SNMP Protocolo simple de administración de red
520 RIP
Protocolo de información de
encaminamiento
Ejemplos de
puertos UDP
preasignados
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
12. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
10/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
13. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
11/42
Características principales del TCP: RFC 793 (1122, 3168, 6093, 6528).
Ofrece un servicio punto a punto. No sirve para comunicaciones multicast (de
uno a muchos).
Implica un servicio orientado a conexión (exige un estado común entre el
emisor y el receptor: “hand-shaking”). 3 fases: establecimiento, intercambio
de datos y cierre
Garantiza la entrega ordenada de las secuencias de bytes generadas por la
aplicación (“stream oriented”).
Opera en transmisión full-duplex.
Incluye mecanismos de detección y recuperación de errores (ARQ) con
confirmaciones positivas ACKs (acumulativas) y “timeouts” adaptables.
Ofrece un servicio fiable control de congestión y control de flujo con
ventanas deslizantes con tamaño máximo adaptable.
Usa la técnica de Incorporación de confirmaciones (“piggybacking”).
Para mejorar su eficacia TCP se ADAPTA a las condiciones de la red
DINÁMICAMENTE
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
14. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
12/42
• Funcionalidades de TCP:
• Multiplexación/demultiplexación de aplicaciones.
• Control de la conexión (establecimiento y cierre).
• Control de errores y de flujo.
• Control de congestión.
• Las TPDUs de TCP se denominan segmentos TCP:
Cada segmento TCP se encapsula en un paquete (denominado datagrama) IP.
0 4 10 16 31
Puerto origen Puerto destino
Numero de “secuencia”
Número de “acuse” de recibo
Hlen
(32 bits)
reservado UAPRSF “Ventana” del receptor (bytes)
Comprobación “Puntero” de datos urgentes
Opciones
datos
.....
Cuenta de bytes
(no segmentos)
Control de flujo
Envío de datos
urgentes fuera
de banda
Longitud de
la cabecera TCP
# del byte que se
espera recibir
(acumulativos)
# de secuencia
del primer byte
del segmento
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
15. F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
13/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
16. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
14/42
• Multiplexación/demultiplexación de aplicaciones: el objetivo es transportar las TPDUs
(segmentos TCP) al proceso correcto. Para ello se usan los puertos números enteros de
2 bytes que identifican al proceso origen y al proceso destino.
• Existen puertos preasignados con servicios normalizados:
• Otros puertos (>1024) están a libre disposición del desarrollador
• Cada “conexión TCP” se identifica por: puerto e IP origen y puerto e IP destino
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
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
17. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
15/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
18. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
16/42
• Control de la conexión:
• TCP ofrece un servicio orientado a conexión.
• El intercambio de información tiene tres fases:
1. Establecimiento de la conexión (sincronizar # de secuencia y reservar recursos).
2. Intercambio de datos (full-duplex).
3. 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
SYN=1
#secuencia =Y
#acuse =Y+1
A B
ACK=1
# acuse =X+1
ACK=1
#secuencia =X+1
“Apertura activa”: cliente
“Apertura pasiva”: servidor
Campos involucrados:
* Bit S (SYN) del campo control
* Campo secuencia (valor aleatorio)
* Campo acuse
* Bit A (ACK) del campo control
¿Qué debilidades tiene el establecimiento?
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
19. TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
17/42
Establecimiento 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).
• 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 incrementan en 1 el
número de secuencia.
• Los segmentos ACK (sin datos) no incrementan el número de secuencia.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
20. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
18/42
• Establecimiento de la conexión. Caso sin incidencias (normal):
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
21. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
19/42
• Establecimiento de la conexión. Caso de conexión simultánea:
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
22. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
20/42
• Establecimiento de la conexión. Caso con SYN retrasados y duplicados:
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
23. TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
21/42
• Control de la conexión:
Cierre de la conexión: liberación de recursos. Si no se hace
ordenadamente puede provocar pérdidas de información
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).
FIN=1
#secuencia =X
FIN=1
#secuencia=Y
#acuse=Y+1
A B
ACK=1
#acuse=X+1
ACK=1
#secuencia =X+1
“Cierre activo”
“Cierre pasivo”
Campos involucrados:
* Bit F (FIN) del campo control
* Campo secuencia
* Campo acuse
* Bit A (ACK) del campo control
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
24. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
22/42
Control de la conexión:
Cierre de la conexión: caso normal.
Hay otras posibilidades de cierre de la conexión (ver el diagrama de estados siguiente).
TCP A TCP B
ESTABLISHED
FIN
-
WAIT
-
1
ESTABLISHED
CLOSE -
WAIT
LAST-
ACK
TIME
-
WAIT
CLOSED
CLOSED
2
MSL
MSL: Maximum Segment Lifetime (normalmente 2 minutos)
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
25. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
23/42
CLOSED
SYN_RCVD
ESTABLISHED
CLOSE_WAIT
LISTEN
SYN_SENT
LAST_ACK
FIN_WAIT_1
FIN_WAIT_2
- / syn
syn+ack / ack
syn / ack
ack / -
syn / syn+ack
apertura pasiva
apertura activa
- / -
- / fin
fin+ack / ack
ack / -
fin / ack
fin / ack
- / fin
ack / -
inicio
TIME_WAIT
CLOSING
fin / ack
ack / -
- / fin
- / syn
reset
2MSL
cierre pasivo cierre activo
Autómata de estados finitos
TCP
Leyenda: a/b
Segmento a recibido,
segmento b transmitido.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
26. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
24/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
27. TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
25/42
Control de errores y de flujo:
• Mejorar rendimiento ventana deslizante.
• 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
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
29. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
27/42
Control de errores y de flujo:
Control de errores: generación de ACKs (RFC 1122, 2581).
Evento
Llegada ordenada de segmento,
sin discontinuidad,
todo lo anterior ya confirmado.
Llegada ordenada de segmento,
sin discontinuidad,
hay pendiente un ACK retrasado.
Llegada desordenada de segmento
con # de sec. mayor que el esperado,
discontinuidad detectada.
Llegada de un segmento que completa
una discontinuidad parcial o totalmente.
Acción del TCP receptor
Retrasar ACK. Esperar recibir al
siguiente segmento hasta 500 mseg.
Si no llega, enviar ACK.
Inmediatamente enviar un único
ACK acumulativo.
Enviar un ACK duplicado, indicando el
# de sec. del siguiente byte esperado.
Confirmar ACK inmediatamente si el
segmento comienza en el extremo
inferior de la discontinuidad.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
30. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
28/42
Control de errores y de flujo:
Control de errores: ¿cómo estimar los “timeouts”?
Debe ser mayor que el tiempo de ida y vuelta (RTT, Round Trip Time), pero ¿cuánto?
Si es demasiado pequeño: timeouts prematuros retransmisiones innecesarias
Si es demasiado grande: reacción lenta a pérdida de segmentos baja eficacia
Para situaciones cambiantes …..la mejor solución es adaptarse dinámicamente.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
31. TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
29/42
Control de errores y de flujo:
Control de errores: ¿cómo estimar los “timeouts”?
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 duplicar el timeout:
toutnuevo = . toutviejo , = 2.
RTTmedido: tiempo desde la emisión de un segmento hasta la recepción del ACK.
RTTnuevo = (1-) x RTTviejo + x RTTmedido , & β [0,1]
Desviacionnueva = (1- β) x Desviacionvieja + β x | RTTmedido – RTTnuevo |
Timeout = RTTnuevo + 4 * Desviacion
Kurose & Ross
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
32. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
30/42
Control de errores y de flujo:
Control de errores: ¿cómo estimar los “timeouts”?
Ejemplo de RTT medidos y estimados entre Amherst, Massachusetts y St. Louis, Missouri.
= 0.875
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
33. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
31/42
Control de errores y de flujo:
Control de flujo:
• 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
Datos
desde IP
Aplicación
Datos TCP
en el buffer
Buffer libre
Buffer del receptor
Ventana
ofertada
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
34. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
32/42
Control de errores y de flujo:
Control de flujo:
• ¿Alguna debilidad en el control de flujo?
• ¿Y si se pierde el anuncio de WIN = 2018? !Bloqueo! ¿Cómo evitarlo?
Temporizador de persistencia
Emisor Receptor
Emisor
Bloqueado
Buffer
La aplicación
escribe 2 KB
La aplicación
escribe 3 KB
El emisor
puede enviar
hasta 2 KB
Vacío
Lleno
2 KB
2 KB
0 4K
La aplicación
lee 2 KB
3 KB
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
35. TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
33/42
Control de errores y de flujo:
Control de flujo: temporizador
de persistencia
• 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.
• Solicitar una entrega inmediata a la aplicación: bit P (PSH).
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
36. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
34/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
37. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
35/42
Control de congestión (RFC 2001):
• Es un problema debido a la insuficiencia de recursos (la capacidad o
velocidad de transmisión de las líneas y el buffer en routers y hosts no son
infinitos).
• Es un problema diferente al control del flujo: el control de congestión es
para proteger a la red debido a sus limitaciones
• Puede tener naturaleza adelante-atrás, aunque en IP no
• Los episodios de congestión se manifiestan en retrasos en las ACKs y/o
pérdidas de segmentos, dependiendo del nivel de severidad del episodio
• Solución extremo a extremo: en el emisor limitar de forma adaptable el
tráfico generado para evitar pérdidas, pero siendo eficaz
• La limitación se hace se hace mediante una aproximación conservadora:
limitando el tamaño de la ventana de emisión.
• ¿Qué es el producto BandWidth-Delay (RTT)? ¿Por qué es importante?
35
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
38. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
TRANSMISSION CONTROL PROTOCOL (TCP)
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
36/42
Inicio
lento
Prevención
de la
congestión
Control de congestión: procedimiento de prueba y error
En el emisor se utilizan dos ventanas y un umbral.
Bytes_permitidos_enviar =
min{VentanaCongestion,VentanaDelReceptor}
VentanaDelReceptor: utilizada para el control de flujo (de tamaño variable) según el
campo “ventana” recibido (ver pp. 12)
VentanaCongestion:
Inicialmente VentanaCongestion = 1· MMS
Si VentanaCongestion < umbral, por cada ACK recibido
VentanaCongestion += MMS (crecimiento exponencial)
Si VentanaCongestion > umbral, cada vez que se recibe todos los ACKs pendientes
VentanaCongestion += MMS (crecimiento lineal)
Si hay timeout entonces
umbral=VentanaCongestion/2 y VentanaCongestion = MMS
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
40. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
38/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
42. ¿No te llega para pagar Wuolah Pro? ¿Un año sin anuncios gratis? ¡Clic aquí!
EXTENSIONES TCP
Introducción| UDP| TCP | Extensiones | Ejercicios
F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
40/42
Adaptación de TCP a redes actuales (RFC 1323).
Ventana escalada:
Opción TCP en segmentos SYN: 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.
SACKS (“ACKs selectivos”). RFCs 2018 y 2883
Referencias:
• RFCs
• /usr/src/linux-2…/net/ipV4/tcp.c
• /usr/include/netinet/tcp.h
• Herramientas de análisis: wireshark y tcpdump
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213
43. F
UNDAMENTOS
DE
R
EDES
2020/2021.
T
EMA
3
41/42
TEMA 3: Capa de Transporte en Internet
1. Introducción.
2. Protocolo de datagrama de usuario (UDP).
3. Protocolo de control de transmisión (TCP).
1. Multiplexación/demultiplexación.
2. Control de la conexión.
3. Control de errores y de flujo.
4. Control de congestión.
4. Extensiones TCP.
5. Ejercicios.
Reservados
todos
los
derechos.
No
se
permite
la
explotación
económica
ni
la
transformación
de
esta
obra.
Queda
permitida
la
impresión
en
su
totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-7121213