1908 – Arquitectura de Redes
Tema 4. Aspectos Avanzados del
Protocolo TCP
Pedro M. Ruiz
<
[email protected]>
Francisco J. Ros
<
[email protected]>
3º Grado en Ingeniería Informática – 2011/2012
Organización del tema
Introducción al nivel de transporte
Transporte orientado a la conexión: TCP
Control de flujo en TCP
Control de congestión en TCP
Retransmisiones mejoradas en TCP
Variantes TCP
Arquitectura de Redes - Universidad de Murcia
2
Organización del tema
Introducción al nivel de transporte
Transporte orientado a la conexión: TCP
Control de flujo en TCP
Control de congestión en TCP
Retransmisiones mejoradas en TCP
Variantes TCP
Arquitectura de Redes - Universidad de Murcia
3
Contextualización
www.um.es
Apl.1
O.S.
D
H
Nivel de Aplicación
sun.rediris.es
Apl.2
Nivel de Transporte
Data
Header
Data
Header
Nivel de Red
O.S.
D
H
D
H
D
H
D
H
D
H
Nivel de Enlace
Arquitectura de Redes - Universidad de Murcia
Source: CS244, Steve McKeown, Stanford University
4
Introducción al Nivel de Transporte
Suministra transporte de los datos extremo a extremo (host
a host). Usando los servicios del nivel de red realiza la
comunicación de forma transparente al medio físico.
Multiplexa tráfico de diversas instancias (procesos) del
nivel de aplicación.
La unidad de transferencia de información a nivel de
transporte se denomina TPDU (Transport Protocol Data
Unit) o simplemente segmento en TCP/IP.
Generalmente las aplicaciones requieren un servicio fiable,
sin pérdidas ni datos duplicados. Para ello se utiliza un
servicio CONS. Ej: TCP (TCP/IP), TP4 (OSI).
A veces basta un servicio de datagramas CLNS (no fiable).
Ej: UDP (TCP/IP), TP0 (OSI).
Arquitectura de Redes - Universidad de Murcia
5
Elementos Principales del Nivel de
Transporte
Direccionamiento y multiplexación
– Identificar a los procesos orígen y destino
– Hacer llegar los datos de diversas fuentes al proceso destino
correspondiente
Establecimiento y cierre de conexiones
– Sólo en nivel de transporte orientado a conexión
Control de flujo y buffers
– Ajuste de las tasas de envío de datos
Control de errores
– Recuperación ante la pérdida de datos en la subred
Arquitectura de Redes - Universidad de Murcia
6
Control de Flujo, Congestión y Errores
Motivación
Un transmisor rápido podría saturar a un receptor lento
– Adaptación de las tasas a los equipos finales
La carga ofrecida a la red puede ser superior a la máxima
soportada
– Buffers de routers intermedios podrían llenarse
– Normalmente conocido como control de congestión
Algunas sesiones podrían recibir muchos más recursos
que otras
– Mantener equidad entre sesiones
Una subred puede perder o retrasar mensajes
Arquitectura de Redes - Universidad de Murcia
7
Comparación de Protocolos de
Transporte en Internet
Función
Transporte
Multiplexación
Detección de errores
Corrección de errores
Control de flujo
Control de congestión
Establecimiento/
terminación de conexión
TCP UDP
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Opcional
No
No
No
No
Arquitectura de Redes - Universidad de Murcia
8
Organización del tema
Introducción al nivel de transporte
Transporte orientado a la conexión: TCP
Control de flujo en TCP
Control de congestión en TCP
Retransmisiones mejoradas en TCP
Variantes TCP
Arquitectura de Redes - Universidad de Murcia
22
Protocolo TCP
Transmission Control Protocol (TCP), RFC 793
– Implementa un transporte confiable orientado a la
conexión (CONS) sobre un servicio de red no confiable
(IP)
Funciones:
– Establecer y terminar conexiones
– Intercambiar datos con las aplicaciones: multiplexar
nivel de aplicación (puertos)
– Gestionar los buffers, ejercer control de flujo
– Controlar errores, retransmitir segmentos (TPDUs)
perdidos, eliminar duplicados
– Efectuar control de congestión
Arquitectura de Redes - Universidad de Murcia
23
Características de TCP
Ofrece un servicio de transporte de datos entre
aplicaciones dúplex, fiable y orientado a conexión
(establecimiento, transferencia de datos y liberación).
El octeto es la unidad de datos del interfaz. No es posible
preservar unidades de mayor longitud.
Los datos de usuario se dividen para ser transmitidos como
datagramas IP.
Se emplea el mecanismo de ventana deslizante para
ejercer control de flujo y recuperarse frente a errores
(generados o no recuperados por la red). La numeración es
a nivel de octeto.
El tamaño de la ventana puede variar a lo largo de una
misma conexión.
Arquitectura de Redes - Universidad de Murcia
24
Diagrama de Multiplexación
Nivel de aplicación
FTP
Port 21
Telnet
Port 23
SMTP
Port 25
Nivel de transporte (TCP)
Cab. TCP Port 23
DATOS APLICACIÓN
Nivel de red (IP)
Cab. IP Prot. 6
SEGMENTO TCP
Nivel de enlace (Ethernet)
Cab. MAC Etype 0800
DATAGRAMA IP
CRC
Arquitectura de Redes - Universidad de Murcia
25
Cabecera TCP
32 bits
Puerto de origen
Puerto de destino
Número de secuencia N(S)
Número de acuse de recibo N(R)
Reserv.
Flags
Tamaño ventana
20
bytes
Lon.
Cab
Checksum
Puntero datos urgentes
Opciones
Relleno
Flags: URG:
ACK:
PSH:
RST:
SYN:
FIN:
el segmento contiene datos urgentes
el campo número de acuse de recibo tiene sentido
el segmento contiene datos ‘Pushed’
ha habido algún error y la conexión debe cerrarse
indica el inicio de una conexión
indica el final de una conexión
Arquitectura de Redes - Universidad de Murcia
26
Campos
Origen y Destino: puertos origen y destino de la
comunicación (FTP, TELNET, SMTP, etc.)
N(S): posición del segmento dentro de la ristra de octetos
de usuario.
N(R): posición del siguiente octeto que se espera recibir.
Válido si bit ACK activo.
Lon Cab: longitud de la cabecera TCP, en múltiplos de 32
bits. Campo necesario porque la cabecera es de longitud
variable.
Arquitectura de Redes - Universidad de Murcia
27
Campos
Tam. Ventana: receptor anuncia sus recursos disponibles.
Checksum: suma de comprobación del segmento TCP y
una pseudo-cabecera.
Puntero Urgentes: indica la posición dentro del segmento
donde acaban los datos urgentes éstos se hallan al
principio. Válido si bit URG activo.
Opciones: Campo opcional de tamaño variable. Define
extensiones a TCP, tales como negociar el tamaño máximo
de segmento (MSS).
Relleno: para que la cabecera sea múltiplo de 32 bits.
Arquitectura de Redes - Universidad de Murcia
28
Cálculo del Checksum
El Checksum se calcula sobre:
– Pseudo-cabecera
Direcciones origen y destino de la cabecera IP
Campo “Protocolo” de la cabecera IP
Longitud de cabecera + datos TCP (en bytes)
– Cabecera TCP
– Datos TCP
Se necesita saber la dirección IP origen, por lo que hay que
interactuar con la entidad IP antes de enviar el datagrama.
Arquitectura de Redes - Universidad de Murcia
29
La Pseudo-cabecera TCP
32 bits
Dirección IP de origen
Dirección IP de destino
00000110
Long. Segmento TCP
00000000
Se añade al principio del segmento para el cálculo del
checksum. Permite a TCP comprobar que IP no se
ha equivocado en la entrega del datagrama.
El valor 1102 = 610 indica que el protocolo de transporte es TCP
Arquitectura de Redes - Universidad de Murcia
30
Tipos de Flags
URG. Datos acelerados. El campo Puntero Urgentes tiene
validez.
– Ej: Envío de una señal a aplicación remota
ACK. El campo N(R) es válido. Confirmación de entrega.
PSH. El segmento requiere envío y entrega inmediata
– Ej: Telnet requiere enviar línea de buffer al presionar [Enter]
RST. Resetea la conexión ante un error irrecuperable.
SYN. Establecimiento de conexión. Confirmación con ACK.
FIN. Liberación de conexión. Confirmación con ACK.
Arquitectura de Redes - Universidad de Murcia
31
Transferencia de Datos
Se emplea ventana deslizante y asentimientos con
memoria, que indican el siguiente octeto que se espera
recibir.
Cada segmento transmitido lleva asociado un temporizador.
Cuando expira, se retransmite.
El plazo de retransmisión se calcula dinámicamente para
adaptarse a las condiciones de la red.
El receptor recompone la ristra de datos de usuario,
descartando duplicados, entregándolos en secuencia.
Más detalles en la siguiente sección…
Arquitectura de Redes - Universidad de Murcia
32
Conexiones en TCP
Se utiliza saludo a tres vías (3-way handshake) tanto
para establecer como para cerrar conexiones
El proceso de establecimiento de conexión reserva
recursos para la comunicación e intercambia los números
de secuencia iniciales (ISN)
– 32 bits que se usan en el intercambio de datos de una conexión
para identificar:
la posición de los datos del segmento en el flujo de bytes del emisor
el siguiente byte que espera el receptor
– Se eligen de forma aleatoria a partir de un reloj para evitar que
segmentos atrasados de conexiones anteriores puedan interferir en
la conexión actual
– Con un MSL (Maximum Segment Lifetime) de unos 2 minutos, la
probabilidad de que dos ISN coincidan es despreciable
Arquitectura de Redes - Universidad de Murcia
33
Establecimiento de Conexión
TCP A
TCP B
Caso Normal
CLOSED
SYN-SENT
ESTABLISHED
o
p
m
e
T
←←←←
i
LISTEN
SYN-RECEIVED
ESTABLISHED
Los primeros segmentos de una conexión TCP pueden
llevar datos. En ese caso el TCP remoto los ha de retener
hasta que la aplicación receptora acepte la conexión.
Arquitectura de Redes - Universidad de Murcia
34
Recuperación
SYN Duplicado
TCP A
CLOSED
SYN-SENT
o
p
m
e
T
←←←←
i
ESTABLISHED
TCP B
LISTEN
SYN-RECEIVED
LISTEN
SYN-RECEIVED
ESTABLISHED
Arquitectura de Redes - Universidad de Murcia
35
Terminación de la Conexión
La terminación se hace de forma simétrica
mediante un saludo a tres vías modificado
– Cuando una parte no tiene más datos que enviar envía
un mensaje FIN que es asentido por el otro extremo
– Desconexión en cada sentido
Comentarios de: Tema 4. Aspectos Avanzados del Protocolo TCP (0)
No hay comentarios