El protocolo TCP

Anuncio
El protocolo TCP
Joaquín Salvachúa Rodríguez
jsr@dit.upm.es
-1-
Propiedades
u Direccionamiento
u Semántica de entrega.
u Semántica de ordenación en la entrega
u Control de flujo: velocidad de envío.
u Control de congestión: no una conexión en
el universo.
u Segmentación: Optimización del tamaño de
envío.
-2-
Desarrollo
u Conjunto con IP.
u Uno de los muchos desarrollados
4Otros eliminados por competencia.
u Múltiples versiones: ajuste por heurísticos.
u Diseñado para Internet:
4Problemas en otros tipos de redes.
4Heurísticos especiales (ppp, atm, etc).
-3-
Características
u TCP es orientado a conexión y “full duplex”.
u La negociación del máximo tamaño de segmento es
en la conexión.
u Fiabilidad implementada por asentimiento,
estimación del tiempo del tiempo de ida y
retransmisión.
u Cambio de tamaño en la ventana para control de
flujo.
u Control de congestión por “slow start” y detección
de congestión.
-4-
Propiedades
u Orientado a conexión.
u Entrega Fiable, Ordenada sin duplicación.
u Control de flujo.
u Indicación de mensajes “fuera de banda”
u Control de congestión.
-5-
Arquitectura TCP/IP
Aplicación
Aplicación
UDP
TCP
ICMP
Ethernet
-6-
Internet Protocol (IP)
AAL 5 / ATM
IGMP
FDDI
Punto de vista del usuario
u Protocolo que force unh stream ordeando de
octetos binarios bidireccional entre dos
puntos de conxión (sockets).
u No está orientado a paquete, no garantiza la
entrega de paquetes si no de flujos de datos.
-7-
Control de flujo
u Utiliza una ventana deslizante de
asentimientos.
u Todos los paquetes llevan una indicación de
la posición en la ventana (16 bits).
-8-
Algoritmos
u Eventos posibles:
4Enviado por el Usuario
4Recepción de un paquete.
4Vencimiento de un temporizador.
-9-
Problemas de congestión
u Políticas de envío:
4Ancho de banda fijo.
4Estimación dinámica del ancho de banda.
• Comenzar lentamente
• Aumentar el ancho de banda hasta el limite
- 10 -
Cabecera TCP
16
0
Puerto Origen
31
Puerto Destino
Número de secuencia
Número de asentimiento
hleng reservado Bits de
6
4
control
Checksum
- 11 -
Ventana
Puntero Urgente
Desmultiplexación
u Se diseñarón otros protocolos,
u Basado en direcciones IP + Puerto.
u Servicios en Puertos bien conocidos
4/etc/services
u Uso de enrutado definido por ICMP
- 12 -
Autómata
u Ver fotocopia
- 13 -
Conexión
u Envío de un SYN con una Inital sequence
number (ISN) +/- aleatorio y un Maximun
Segment Size (MSS).
u Responde con un ack y con otro ISN y MSS.
u Protección contra ataque malévolos.
u Tras Asentir el ACK comienza la
transmisión.
- 14 -
Finalización de la conexión
u Uno de los participantes envia un segmento
marcado con FIN.
u Cuando a sido asentido el receptor puede
aún enviar datos (half close).
u La conexión puede desconectarse con un
RST.
- 15 -
Intercambio de datos
u Se utiliza un cierto tamaño de paquetes.
u Algoritmo de Nagle: un envío puede tener
un solo paquete pequeño sin asentir.
u Limitar los paquetes pequeños en WAN.
u Programable para programas interactivos
(rlogin telnet ≠ ftp).
- 16 -
Control de flujo
u Separado de tamaño de paquete:
asentimiento por bytes.
u Posibilidad de múltiples asentimientos en 1
(rangos).
u Tamaño de la ventana: Nº de asentimientos
pendientes.
u Tamaño de paquetes variables.
- 17 -
Temporizaciones
u Solo asiente el último byte correcto (supone
que bien todos los anteriores).
u Calculo dinámico de RTT (media
estadística).
u Si vence la temporización se retransmite.
- 18 -
Calculo del RTT
u Unidad de tiempo = 500 ms.
u Solo se realiza una medición por vez.
u Al enviar una pdu se inicia el contador.
u Al recibir el ACK.
u No se recalcula si no se recibe un ack por un
paquete no retransmitido (alg. Karns).
- 19 -
Control de congestión
u Ancho de banda: función de ventana y RTT.
u Perdidas de paquetes y retransmisiones
indicación de congestión.
u Intento de tener el tamaño optimo de la
conexión (problema de múltiples
conexiones).
- 20 -
Slow start
u Por si la moscas comenzamos despacio.
u Según se reciben paquetes sin necesidad
de retransmisión se incrementa el tamaño
de la ventana.
u Se supone que alcanzamos el óptimo.
u Tras un timeout se resetea.
- 21 -
Problemas
u Redes de banda ancha.
u Sobrecarga de conexión con HTTP.
u Todos los algoritmos son resultados de
medidas y simulaciones.
u Convergencia hasta la versión actual.
- 22 -
Descargar