Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TCP avanzado
Redes de Ordenadores
5º Ingeniero de Telecomunicación
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 2
Índice
1 Paradigmas de comunicaciones
2 Multiplexación por puerto
3 UDP
4 TCP
4.1 Cabecera TCP
4.2 Opciones cabecera TCP
4.3 Conexiones TCP
4.3.1 Establecimiento
4.3.2 Transferencia
4.3.3 Finalización
4.3.4 Diagrama de transición de estados TCP
4.4 Transferencia interactiva
4.4.1 Confirmación retrasada (delayed ACK)
4.4.2 Algoritmo de Nagle
4.5 Transferencia masiva
4.5.1 Transferencia normal
4.5.2 Control de flujo
4.5.3 Control de congestión
4.5.4 Producto RTTxBW
4.6 Fiabilidad en TCP
4.6.1 Timeouts y retransmisiones
4.6.2 Temporizador de persistencia
4.6.3 Temporizador keepalive
4.7 Fast Retransmit y Fast Recovery
4.8 Versiones de TCP
1
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 3
Parte 1
1 Paradigmas de comunicaciones
2 Multiplexación por puerto
3 UDP
4 TCP
4.1 Cabecera TCP
4.2 Opciones cabecera TCP
4.3 Conexiones TCP
4.3.1 Establecimiento
4.3.2 Transferencia
4.3.3 Finalización
4.3.4 Diagrama de transición de estados TCP
4.4 Transferencia interactiva
4.4.1 Confirmación retrasada (delayed ACK)
4.4.2 Algoritmo de Nagle
4.5 Transferencia masiva
4.5.1 Transferencia normal
4.5.2 Control de flujo
4.5.3 Control de congestión
4.5.4 Producto RTTxBW
4.6 Fiabilidad en TCP
4.6.1 Timeouts y retransmisiones
4.6.2 Temporizador de persistencia
4.6.3 Temporizador keepalive
4.7 Fast Retransmit y Fast Recovery
4.8 Versiones de TCP
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 4
Introducción
Revisados los niveles de enlace y red, el siguiente nivel es el de
transporte.
El protocolo IP provee un servicio de datagramas no fiable.
Direccionamiento.
Encaminamiento.
Fragmentación y reensamblado.
Capacidades de manejo de Calidad de Servicio.
(IPorigen, IPdestino) permiten distinguir una comunicación.
¿Qué ocurre si se quiere mantener varias comunicaciones
simultáneas con diferentes aplicaciones en la misma máquina
destino?
Necesidad de multiplexar varias comunicaciones sobre el mismo nivel
de red IP.
2
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 5
1 Paradigmas de comunicaciones
Las aplicaciones se implementan tradicionalmente sobre el nivel de
transporte (UDP o TCP).
Las aplicaciones hacen uso de los servicios proporcionados por el nivel
de transporte.
Existen APIs que proporciona el sistema operativo para el acceso a
las funciones del nivel de transporte
Sockets BSD
Existen diferentes estrategias o paradigmas de comunicación a la
hora de distribuir la responsabilidad de la comunicación:
Cliente/Servidor
P2P
Híbridos
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 6
CLIENTE 4
CLIENTE 1
CLIENTE 3
3
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 7
PEER
PEER
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 8
4
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 9
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 10
5
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 11
3 UDP RFC768(STD6)
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 12
Características UDP
Deficiencias cubiertas por otros niveles de transporte:
UDP no es fiable
Los paquetes se pueden perder.
Los paquetes se pueden entregar fuera de orden.
UDP no incorpora mecanismos de control de flujo y congestión
La aplicación ha de implementarlos.
Si todas las aplicaciones de una red fueran UDP y empezasen a mandar a
elevadas tasas, se producirían desbordamientos en las colas de los routers
sin ningún tipo de control.
UDP ofrece:
Multiplexación de aplicaciones gracias al uso de puertos.
Checksum del mensaje.
6
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 13
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 14
7
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 15
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 16
Aplicaciones de difusión
Necesiten usar direcciones destino Multicast o Broadcast.
Con TCP no es posible.
8
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 17
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 18
4 TCP RFC768(STD6)
9
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 19
Características TCP
TCP divide los datos en bloques de tamaño óptimo para ser
transmitidos por la red y llamados segmentos.
MSS (Maximum Segment Size) será el tamaño máximo de datos del
segmento TCP de tamaño óptimo que estará relacionado con la MTU
del camino y evitar así fragmentación.
Cada segmento se encapsula en un paquete IP manteniendo la
cabecera TCP.
MSS
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 20
Características TCP
Incorpora mecanismos de:
Control de flujo: evitar saturar al receptor (ventana deslizante).
Control de congestión: evitar saturar la red (ventana de congestión,
umbral de slow-start).
Multiplexación por puerto
Se denomina conexión a (IP_origen, puerto_origen, IP_destino,
puerto_destino, ¿protocolo?) = (socket_origen, socket_destino)
Estos 4 campos identifican unívocamente a todos los segmentos TCP
pertenecientes a la misma conexión.
10
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 21
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 22
Cabecera TCP
Puerto origen/destino (16bits)
Numero de secuencia (32bits)
Identifica el byte del stream que representa el primer byte de datos de
este segmento. TCP numera cada byte de datos transmitidos con un
número de secuencia.
El contador se reinicia a 0 después de alcanzar el máximo de 232-1.
Al establecer la conexión, en el segmento con el flag SYN activado este
campo contiene el nº de secuencia inicial (ISN, Initial Sequence
Number) que la máquina elige de un contador de 32 bits que se
incrementa cada 4 s. Esto permite no confundir segmentos antiguos
de una conexión pasada como de esta.
Este segmento de SYN consume un nº de secuencia por lo que el
primer byte de datos reales comienza en ISN+1. El segmento de FIN
también consumirá un nº de secuencia.
11
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 23
Cabecera TCP
Número de confirmación (32bits)
Contiene el siguiente número de secuencia que el emisor de la
confirmación espera recibir: con ello confirma todos los bytes recibidos
hasta el nº secuencia=(nºconfirmación - 1).
Este campo es válido sólo si el flag ACK está activado.
Como los campos de confirmación están incluidos en la cabecera
básica no supone un coste extra activarlo. Normalmente activado en la
fase de intercambio de datos.
Full-duplex, cada extremo debe llevar cuenta de su nº de secuencia y
su nº de confirmación.
Longitud cabecera (4bits)
Tamaño de la cabecera TCP en palabras de 32 bits para identificar así
el tamaño variable de los campos de opciones.
Reservados (6 bits)
No utilizados.
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 24
Cabecera TCP
Flags (6bits)
URG: Urgent
Comunica al otro extremo que se han colocado datos urgentes en este
segmento, y queda en manos del receptor qué hacer.
El campo “puntero urgente” es válido sólo ahora.
ACK: Acknowledgement
Indica que el campo “número de confirmación” es válido.
PSH: Push
Notifica al otro extremo para que pase los datos a la aplicación
inmediatamente.
Hace referencia a datos que habría antes en el buffer receptor y a los
nuevos de este segmento con PSH activado.
Muchas implementaciones adjuntan PSH automáticamente cuando se vacía
el buffer del transmisor.
12
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 25
Cabecera TCP
RST: Reset
Cierra la conexión pasando directamente al estado “closed” (del diagrama
de estados de TCP), sin pasar por la fase de finalización de conexión.
Todos los segmentos que hubiera en el buffer del receptor se desechan.
Se puede usar para:
Cierre brusco de la conexión (unilateral).
Avisar de que no existe aplicación escuchando en ese puerto.
SYN: Synchronize
Sincronizar los nº de secuencia para iniciar la conexión.
Con SYN activo, el campo de nº de secuencia se interpreta como número
de secuencia inicial (ISN).
Consume un nº de secuencia aunque no incluye datos.
FIN: Finish
El emisor ha terminado de enviar datos.
Consume un nº de secuencia aunque no incluye datos.
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 26
Cabecera TCP
Tamaño de ventana (16bits)
Ventana anunciada por el receptor WR.
Control de flujo: indica el nº de bytes que el receptor está dispuesto a
aceptar (posee buffer libre) desde el byte especificado por el campo
número de confirmación.
Tamaño máximo de ventana 216-1=65535 bytes. Existe una opción de
escalado de ventana para aumentar ese límite.
Puntero urgente (16bits)
Sólo válido si el flag URG está activado.
Indica el offset que añadido al nº de secuencia TCP obtiene el nº de
secuencia del último byte urgente.
13
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 27
Cabecera TCP
Checksum (16bits)
Se calcula como en IP en palabras de 16 bits aplicado sobre:
Cabecera TCP
Datos TCP
Seudocabecera TCP
IP origen
IP destino
Protocolo
Longitud TCP
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 28
Cabecera TCP
Datos TCP (tamaño variable)
Opcional, no se incluye en paquetes de:
SYN
FIN
14
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 29
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 30
15
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 31
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 32
16
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 33
Casos especiales: A B
T1
Si se recibe un ACK por 2 segmentos mandados, T2
se incluye copia del timestamp del primero de RTT
esos segmentos. T 1’
A B
Si se reciben fuera de secuencia, el ACK adjunta T
copia del timestamp del primero que debería haber 1
RTT T2
llegado aunque hayan llegado después en
desorden. T 1’
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 34
Opción: Timestamp
17
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 35
Opción: Timestamp
Formato cabecera
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 36
18
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 37
Opción: SACK
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 38
Opción: SACK
Ejemplo, segmentos 3, 4 y 5 fuera de orden
19
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 39
Opción: SACK
Ejemplo, segmentos 4 duplicado
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 40
Resumen
Paradigmas:
Cliente/Servidor
P2P
Multiplexación de aplicaciones gracias al uso de puertos.
UDP ofrece un servicio de datagramas (no orientado a conexión)
No es fiable.
No incorpora mecanismos de control de flujo y congestión.
TCP ofrece un servicio orientado a conexión.
De intercambio entre extremos de un stream de bytes..
Dividiendo los datos en bloques de tamaño óptimo: MSS.
Fiable.
Con control de flujo.
Con control de congestión.
La cabecera TCP incorpora multitud de campos para soportar la
complejidad del protocolo.
20
REDES DE ORDENADORES
Área de Ingeniería Telemática Capítulo 4: TCP avanzado 41
Bibliografía
[Forouzan]
Capítulo 11
Capítulo 12, secciones 12.1-12.3 y 12.14
[Stevens]
Capítulo 11
Capítulo 17
[Comer]
Capítulo 12
Capítulo 13, secciones 13.1-13.4 y 13.11
[Kurose]
Capítulo 3, sección 3.3, 3.5.1-3.5.2
[Tanenbaum]
Capítulo 6, sección 6.4
21