elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Comunicaciones
| |-+  Redes
| | |-+  TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)  (Leído 4,246 veces)
eternoneofito

Desconectado Desconectado

Mensajes: 14



Ver Perfil
TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
« en: 21 Agosto 2011, 09:35 am »

Buenas, resulta que estoy leyendo el gran libro "TCP Illustrated" (exelente por cierto), y llegue hasta el capitulo 21 donde me quede con muchisimas dudas. Lo que pasa es que no tengo un buen nivel de ingles, de hecho cuando empece no sabia casi nada... aprendi durante el transcurso de la lectura.

Estos son algunos de los conceptos que no me quedaron claros(los escribo en ingles):
Slow start
Congestion avoidance algorithm
Fast retransmit and fast recovery

Las cosas que no entendi bien fueron basicamente como se determinan los distintos "estimadores"(smoothed RTT estimator and smoothed mean deviation estimator), y como maneja TCP las "variables" cwnd(congestion window) y ssthresh(slow start threshold size).
Si alguien me pudiera brindar su entendimiento de estos conceptos(en castellano por favor  ;D) se lo agradeceria muchisimo. Aunque bueno se que mi pregunta tambien es un poco dificil de contestar, no porque no vayan a saberlo, sino porque es un poco larga  ;D.


En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
« Respuesta #1 en: 21 Agosto 2011, 17:14 pm »

Intentaré explicarlo lo mejor que pueda y que sea muy breve, si al final sigues teniendo dudas, pregunta.

- Slow-start. Para no congestionar la red, se empieza enviando los paquetes por orden de tamaño, desde los pequeños a los más grandes, hasta que se llegue al límite, en cuyo caso se empezará a descartar paquetes. Simplemente trata de buscar una velocidad adecuada para enviar los paquetes.

- Congestion avoidance algorithm. Es la base básica para evitar las congestiones. En realidad es un conjunto de algoritmos que intenta remediar las congestiones, como el TCP Vegas, TCP New Reno, Cubic, Hybla, etc.

- Fast retransmit and fast recovery. Se podría decir que es una de las muchas mejoras que se ha aplicado, intenta reducir el tiempo que el cliente espera para enviar los paquetes "perdidos"

Citar
Inicialmente la cwnd será de 1 o 2 segmentos de datos. En cada ronda, a medida que se reciban los ACK, cwnd irá aumentando en igual número de ACK's que hayan llegado (1,2,4,8,16,...). Esta ventana de segmentos aumentará indefinidamente hasta que se alcance el umbral ssthresh que haya sido programado (64 k en el caso más extremo al ser el límite de ventana que impone TCP). Una vez llegado a su umbral, slow-start dejará de ser usado y la ventana cwnd dejará de crecer exponencialmente, se pasará a otro algoritmo más conservador, orientado a mantenerse sin congestionar la red, y que hará que la ventana de transmisión crezca linealmente. Si en algún punto de la comunicación se pierde algún paquete, TCP entenderá que es porque hay congestión de red, guardará el valor de cwnd como nuevo ssthresh e iniciará de nuevo el algoritmo volviendo a empezar con la ventana inicial.


De todas formas, en el libro que mencionas (dispongo de otra versión, algo más nueva - "TCP/IP Illustrated, Volume 2") a partir de la página 840 se empieza a explicar casi todo lo que preguntas, me refiero a la variable cwnd y demás.


Documentación:

_TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms.
_TCP Congestion Handling and Congestion Avoidance Algorithms .
_Slow Start and Congestion Avoidance Algorithms.
_Network congestion.
_RFC 2001 - TCP Slow Start, Congestion Avoidance, Fast Retransmit.
_A TCP Tutorial.


Siento decírtelo para toda la buena documentación está en Inglés.

Te dejo unos PDF's más (uno de ellos está en Castellano) enlazados a mi Google Docs:

_https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0Bz-v_6NnBKKdOWJlMzUzYWItMGZmMS00ZjYwLTgzNTgtZGU5MWZkYTEwNDdm&hl=en_US
_https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0Bz-v_6NnBKKdYzZhNTdiZGItNDVkYi00NDNhLTk3MDctMzk2YzhkZWM5MjAx&hl=en_US
_https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0Bz-v_6NnBKKdZDcwNTcyNDAtNDZhYi00M2FhLWJmZDgtYzczN2Y4M2VjMDBi&hl=en_US

La mayoría son bastante técnicos, llegando a explicar en profundidad los distintos algoritmos.


« Última modificación: 21 Agosto 2011, 17:18 pm por madpitbull_99 » En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
eternoneofito

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
« Respuesta #2 en: 22 Agosto 2011, 17:54 pm »

Uh... genial, gracias por la info y por responder a mis dudas.

En cuantos a los algoritmos, fast retransmit and fast recovery, hay un resumen final que dice los siguiente:

This algorithms are usually implemented together as follows:
1)When the third duplicate ACK arrives, set ssthresh to one-half of the minimum of the current congestion window (cwnd) and the reiver's advertised window.
Retransmit the missing segment.
Set cwnd to ssthresh plus 3 times the segment size.

2)Each time another duplicate ACK arrives, increment cwnd by the segment size and transmit a packet (if allowed by the new value of cwnd)

3)When the ACK arrives that acknowledges new data, set cwnd to ssthresh(the value set in step 1). This should be the ACK of the retransmission from step 1, one round-trip time after the retransmission. Additionally, this ACK should acknowledge all the intermediate segments sent between the lost packet and the receipt of the third duplicate ACK. This step is congestion avoidance, since we're slowing down to one-half the rate we were at when the packet was lost.

En el primer paso cuando se recive el tercer ACK duplicado, el umbral ssthresh se fija a la mitad de la cwnd o la ventana advertida por el receptor(segun cual sea menor). Se retransmite el segmento perdido y se fija la cwnd al valor de ssthresh mas 3 veces el tamaño del segmento.
En el paso dos se realizaria congestion avoidance.
Y en el paso tres? No entiendo que es lo que pasa, se vuelve a fijar el valor de la cwnd al del umbral ssthresh? Si no es que entendi todo mal los pasos anteriores jaja.
En línea

madpitbull_99
Colaborador
***
Desconectado Desconectado

Mensajes: 1.911



Ver Perfil WWW
Re: TCP timeout and retransmission(libro TCP Illustrated vol 1, Stevens)
« Respuesta #3 en: 22 Agosto 2011, 22:06 pm »

Citar
3)When the ACK arrives that acknowledges new data, set cwnd to ssthresh(the value set in step 1). This should be the ACK of the retransmission from step 1, one round-trip time after the retransmission. Additionally, this ACK should acknowledge all the intermediate segments sent between the lost packet and the receipt of the third duplicate ACK. This step is congestion avoidance, since we're slowing down to one-half the rate we were at when the packet was lost.
El valor de cwnd será igual al valor asignado a ssthresh en el paso 1.


En línea



«Si quieres la paz prepárate para la guerra» Flavius Vegetius

[Taller]Instalación/Configuración y Teoría de Servicios en Red
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Libro 3d max
Diseño Gráfico
Robokop 0 2,087 Último mensaje 26 Mayo 2006, 01:11 am
por Robokop
Servlet (Connection Timeout)
Java
BlaineMonkey 4 5,527 Último mensaje 17 Junio 2010, 10:32 am
por BlaineMonkey
Timeout en mètodo connect de SocketChannel
Java
RyogiShiki 0 2,412 Último mensaje 16 Agosto 2011, 04:28 am
por RyogiShiki
Controlar TimeOut en conexión
Java
imaginawireless 4 6,055 Último mensaje 23 Febrero 2012, 04:41 am
por RyogiShiki
Read timeout
Java
Xedrox 2 2,376 Último mensaje 5 Septiembre 2014, 20:45 pm
por Chuidiang
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines