Tema 1 (2017)

Resumen Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Ingeniería Informática - 3º curso
Asignatura Tecnologías Avanzadas de Internet
Año del apunte 2017
Páginas 5
Fecha de subida 07/06/2017
Descargas 7
Subido por

Vista previa del texto

Tecnologías Avanzadas de Internet Tema 1 – Protocolo TCP Repaso TCP A sec: x+1, ack: y+1 B sec: x+4, ack: y+1 Ventana: nº de bytes máximo que se pueden enviar sin ACK.
sec: y+1 MSS (Maximum Segment Size): Tamaño máximo para los datos del segmento.
SEC: Posición del inicio de los datos a enviar.
ACK: Última posición recibida + 1.
TCP tiene dos restricciones al enviar segmentos: el MSS y la ventana (Restricciones de tamaño).
Timeouts y retransmisiones TCP dispone de un timer que lo asocia a cada segmento que envía que lo usará para retransmitir los segmentos perdidos (se agota el timer).
El problema es un cálculo preciso para este timer, para ello TCP dispone de un algoritmo adaptativo este cálculo.
SRTT (Smooth Round Trip Time): Pérdida de segmentos  congestión en un router o se descartan los datagramas.
RTT: Round Trip Time, tiempo del segmento en ser enviado y recibir confirmación.
𝑆𝑅𝑇𝑇 = (𝛼 ×𝑆𝑅𝑇𝑇) + ((1 − 𝛼) ×𝑅𝑇𝑇𝑚𝑒𝑑𝑖𝑑𝑜 ) 𝑇𝑖𝑚𝑒𝑜𝑢𝑡 = 𝑆𝑅𝑇𝑇 × 𝛽  factor para añadir tiempo extra Existen casos en el tiempo expira y se reenvía el segmento. Cuando llega la confirmación no sabemos si es del primer segmento o del segundo  se entra en estado de ambigüedad.
Cuando ocurre esto, no se utilizan estos tiempos para actualizar el SRTT. A parte, se guarda el timeout y se va aumentando para poder ver cuando llega el segmento realmente y cuando pasa esto, se descarta el timeout y recuperamos el original.
Timeout Backoff Keep-alive: mecanismo para “cerrar” conexiones TCP. De esta manera se pueden liberar los recursos cuando una conexión se “cierra” sin un segmento FIN.
Funcionamiento:     Cliente conectado normal: no sucede nada.
Cliente está parado: el servidor le pregunta varias veces en un periodo corto de tiempo antes de cortar la conexión.
Cliente ha reiniciado: enviará un reset al servidor.
Cliente está bien, pero no llegan los segmentos: igual que el segundo caso.
Respuesta a la congestión TCP también reacciona a la congestión de la internet.
Congestión: retrasos (pérdidas de datagramas) causados por sobrecarga de datagramas en uno o más elementos de computación (routers).
TCP tiene 3 técnicas para actuar contra la congestión: Decremento multiplicativo: si hay pérdida se divide la ventana de congestión entre dos. Con esto se reduce el tráfico para dar tiempo a que se reduzcan las colas en los routers.
Ventana de congestión: TCP dispone de esta ventana para poder reducir el flujo de datos cuando hay congestión, normalmente es igual que la ventana de emisión.
Slow-start: se utiliza al iniciar una conexión o al incrementar el tráfico tras una congestión. Se inicia la ventana de congestión a un segmento y se va incrementando en un segmento con cada confirmación. Con esto se consigue no colapsar la red tras una congestión.
Fase de evitar congestión: se entra en esta fase cuando se llega a cierto nivel de estrés. Según la implementación de TCP se actúa de una manera u otra para evitar llegar a una congestión.
Fast retransmission: enviar el segmento que parece que se ha  TCP Tahoe: Al recibir 3 ACKs duplicados  Fast perdido sin esperar al timeout.
retransmission, se reduce la ventana de congestión a 1 MSS y se hace Slow-start.
IP también tiene sus métodos contra la congestión.
Cola: mientras un datagrama es procesado en un router, el resto que llegan se esperan en una cola. Como su memoria no es infinita, necesita una política de gestión de colas para determinar qué hacer con los datagramas que están en la cola.
Tail Drop: se descartan los datagramas que llegan si la cola ya está llena.
Problema  se pierden datagramas de N conexiones y todas ellas entran en slowstart.
RED (Random Early Discard): algunos datagramas se descartan antes de llegar al máximo. Esto evita el problema del tail drop.
Existen dos límites en esta cola, Tmin y Tmax. Según estos límites la cola actuará de una manera u otra.
   Cola < Tmin: añadir Cola > Tmax: descartar Tmin < Cola < Tmax: descartar según una probabilidad P.
Para que RED funcione bien es clave elegir bien estos valores:    Tmin: debería ser grande para que haya buen uso del enlace.
Tmax: más grande que Tmin y más grande que el incremento habitual de un RTT (2 veces Tmin).
P: depende de la relación entre el tamaño de la cola y los límites.
Calculo de tamaño de la cola: 𝑇𝑎𝑚𝑎ñ𝑜 = (𝛼 × 𝑒𝑠𝑡𝑖𝑚𝑎𝑐𝑖ó𝑛) + ((1 − 𝛼) × 𝑇𝑎𝑚𝑎ñ𝑜𝑜𝑙𝑑 ) FIFOF: FIFO Fast, es igual que la política Tail Drop pero usando 3 bandas diferentes. El datagrama irá a una banda u otra según su valor TOS. Se procesarán los datagramas de las bandas con más prioridad.
SFQ (Stochastic Fairness Queing): cada comunicación se mantiene en una cola FIFO diferente y se van cogiendo datagramas de una cola o de otra siguiendo el esquema Round Robin.
TBF (Token Bucket Filter): Se usa un “bucket” que se llena de “tokens” a una cierta velocidad y cada byte que llega coge un token.
   Si los datos llegan a la cola más poco a poco que los tokens, estos se acumulan y permitirán ráfagas cortas.
Si los datos llegan demasiado rápido, la velocidad de salida de la cola es igual a la entrada de tokens.
Si el bucket está lleno y llegan más datos, estos se eliminan.
Ventanas menguantes Funcionamiento de las ventanas:    Compromiso de ventana: TCP no debería de hacer más pequeña la ventana que el tamaño que ha anunciado previamente. Los anuncios deberían ser más pequeños que en las confirmaciones.
Freno de emisión: si la ventana anunciada por el receptor es cero, el emisor deja de enviar.
Restablecimiento de emisión: cuando el receptor vuelve a poder recibir datos envía un anuncio diferente a cero.
Excepciones con envío de ventana cero:   El emisor puede emitir a pesar que el anuncio sea de cero si hay datos urgentes preparados.
De tanto en tanto se va interrogando al receptor para evitar entrar en deadlock.
Síndrome de la ventana tonta: A w=3 w=0 B 1. El receptor prepara un buffer de K bytes para recibir y envia un anuncio de ventana de este tamaño.
2.
El emisor envia estos bytes y el receptor responde con una confirmación. Como tiene el buffer lleno, la ventana es w = 0.
3.
La app en el receptor lee pocos bytes del buffer, dejando poco espacio en el buffer y enviará un anuncio de pocos bytes.
4.
El emisor enviará pocos bytes. El receptor confirmará y su app liberará posiciones del buffer, incrementando la ventana. Enviará pocos bytes, … y el ciclo se seguirá repitiendo.
Problemas:      Pocos bytes de datos para tener que usar las dos cabeceras de TCP e IP (40 bytes).
Consumo de ancho de banda Ratio grande de cabeceras/datos Overhead de cálculo Tiempo grande de tansmisión Para solucionar esto necesitamos que los dos extremos apliquen técnicas.
Receptor – 1a Técnica: consiste en esperar al enviar el anuncio de ventana (después de que sea 0) hasta que el incremento sea suficientemente grande. El cálculo del tiempo a esperar es 𝑡𝑎𝑚𝑎ñ𝑜 𝑏𝑢𝑓𝑓𝑒𝑟⁄ el siguiente: 𝑈𝑚𝑏𝑟𝑎𝑙 = min( 2 , 𝐷𝑎𝑡𝑜𝑠 𝑒𝑛 𝑀𝑆𝑆).
Receptor – 2a Técnica: consiste en no enviar las confirmaciones hasta que el anuncio de ventana sea suficientemente grande. Se recomienda usar esta técnica.
Emisor – Algoritmo de Nagle: función adaptativa para solucionar el problema de la ventana tonta.
Ventajas:   En una transferencia de ficheros, los segmentos sucesivos tendrán muchos bytes.
En un tecleo de comandos remotos, se envian pequeños segmentos sin espera.
Si hay datos a enviar: Si tamaño_ventana Y datos_disponibles >= MSS: Enviar segmento de tamaño MSS Sino: Si hay datos no confirmados en el buffer: Poner en cola hasta llegar ACK Sino: enviar inmediatamente ...