CICLO: IX
TURNO: NOCHE
CODIGO: 1130551
2018
1
INTRODUCCIÓN:
Muchos al TCP/IP lo confunden como si fuese un solo protocolo, en realidad es una colección de
múltiples protocolos, de entre los cuales destacan el protocolo IP y el protocolo TCP. Se ha convertido
en el protocolo más popular debido a que es utilizado por Internet y está muy extendido en los sistemas
operativos.
TCP/IP se ha convertido en el conjunto de protocolos de red disponible más adaptable por el medio del
cual se puede trabajar casi en cualquier medio de Red, Hardware y Sistema Operativo existente, desde
una pequeña LAN de grupo de trabajo, hasta la conexión de millones de sistemas que componen la
propia Internet.
Se llama congestión al exceso de tráfico en alguna parte de una red, que da lugar al exceso de demanda
Una propiedad típica de la congestión es la realimentación, que hace que la situación empeore con el
paso del tiempo, pues un nodo congestionado provocará con el tiempo la saturación de los que envían
tráfico hacia él. La consecuencia final de la congestión, si ésta no es resuelta, es que los nodos entran en
2
MARCO TEORICO
La capa de transporte ofrece a la capa de aplicación dos servicios: un servicio orientado a conexión
protocolo TCP "Transmition Control Protocol" y un servicio no orientado a conexión protocolo UDP
"User Datagram Protocol". La unidad de envío o recepción datos del protocolo TCP se conoce con el
nombre de segmento TCP y la unidad de envío o recepción de datos del protocolo UDP es conocido
como datagrama UDP. La función protocolo TCP consiste en ofrecer un servicio de envío y recepción
de datos orientados a conexión que sea seguro y que goce de los siguientes mecanismos:
Multiplexamiento.
Conexiones.
Fiabilidad.
Mecanismo de Multiplexamiento
El mecanismo de multiplexamiento consiste en que más de una aplicación pueda utilizar los servicios
del protocolo TCP. El protocolo TCP hace uso de los parámetros de control: Puerto destino y Puerto
origen incluidos en una cabecera TCP y los parámetros de control: Dirección IP Destino y Dirección IP
3
Cuando los números de puerto son concatenados con las direcciones IP de la capa de enrutamiento,
conforman lo que se denomina un conector "socket". Un par de conectores identifica de forma única la
Los puertos de las aplicaciones que ofrecen servicios a las aplicaciones clientes han sido estandarizados
y se conocen con el nombre de "puertos bien conocidos". La organización que controla y estandariza el
El número de puerto de una aplicación está definido por un registro de 16 bit "parámetro de control
Puerto destino y/o puerto origen", esto implica un rango de puertos que va de 0 a 65535 puertos. El
rango de puertos que va de 0 a 1023 son conocidos con el nombre de puertos privilegiados. Los procesos
que hacen uso de estos puertos son ejecutados con privilegio root.
En un encabezado TCP el número de puerto que refleja el parámetro puerto origen es el número de
puerto de la aplicación que está enviando los datos. Y el número de puerto que refleja el parámetro
Mecanismo de conexión:
información del estado para cada conexión TCP. Cada conexión queda identificada de forma única por
4
Cuando dos procesos "cliente/servidor" desean comunicarse, el protocolo TCP debe establecer primero
Como las conexiones tienen que establecerse entre "computadoras, enrutadores, etc." y sobre un servicio
no orientado a conexión ofrecido por la capa de enrutamiento, el protocolo TCP utiliza un mecanismo
Los parámetros de control utilizados para iniciar, reiniciar y finalizar una conexión TCP son:
SYN: Es utilizado para sincronizar el número de secuencia de los segmentos a ser enviados o
recibidos.
FIN: Este parámetro es utilizado para notificar al receptor que los datos recibidos son los
ACK: La función del parámetro ACK es la de hacer valedera el parámetro: número de acuse
recibido
5
Número de secuencia: Indica el número de secuencia del segmento. Si el parámetro SYN es
Número de acuse recibido: Si el bit de control ACK es igual a uno lógico, este campo contiene
el valor del siguiente número de secuencia que el emisor del segmento espera recibir y a su vez
Ventana: Es el número de octetos de datos que el receptor de este segmento está dispuesto a
aceptar, contados a partir del número indicado en el campo de "Número de acuse de recibo".
Opciones: EL campo de opciones puede ocupar un espacio al final de la cabecera de TCP pero
siempre de una longitud múltiplo de 8 bits. La opción más común es el parámetro: tamaño máximo
del segmento "MSS". Si esta opción está presente, entonces indica el tamaño máximo de segmento
que puede recibir el módulo de TCP que envía este segmento. Este campo debe enviarse únicamente
en la petición inicial de conexión. Si esta opción no está presente en una cabecera TCP por defecto
el MSS es igual a 556 Byte = 536 Byte "Payload" + 20 Byte "Cabecera TCP".
6
Mecanismo de fiabilidad
Con el fin de poder recuperar los datos que se corrompan, pierdan, dupliquen o se entreguen
desordenados por los servicios de la capa de enrutamiento, el protocolo TCP está diseñado para
satisfacer los principios de un protocolo orientado a conexión, es decir; que por cada segmento enviado
por el emisor este debe recibir un número de acuse de recibido enviado por el receptor
El protocolo TCP está diseñado para controlar el envío y recepción de segmentos TCP a fin de evitar
La técnica de desplazamiento de ventana es una técnica de control del flujo impuesta por el receptor de
segmentos TCP con el fin de evitar momentos de congestión en el computador receptor. Durante el
proceso de inicialización de una conexión TCP, el proceso TCP de cada computador da a conocer los
parámetros de control ventana y MSS. Con estos dos parámetros el proceso de envío de segmentos del
protocolo TCP puede calcular el máximo número de segmentos que puede recibir el proceso de
recepción del protocolo TCP en un momento determinado. El parámetro ventana incluido en una
cabecera TCP es un registro de 16 bits y el valor del mismo puede variar durante el envío y recepción
de segmentos TCP hasta llegar al punto de que sea igual a cero. Cuando esto ocurre indica que el proceso
7
de recepción de segmentos no está en capacidad de recibir ningún segmento TCP ya que el buffer de
recepción se encuentra completamente lleno. Esto obliga al proceso de envío de segmentos TCP del
computador remoto no transmitir ningún segmento hasta que el parámetro de control ventana sea mayor
o igual a un segmento.
Esta técnica funciona si la conexión TCP se establece en una red local pero cuando la conexión TCP se
establece a través de una red WAN los enrutadores pueden experimentar momentos de congestión ya
que los mismos interactúan con un servicio de conexión no orientado y la capacidad de envío y recepción
de datos de un enlace WAN en la mayoría de los casos es mucho menor que el de una red LAN. Para
resolver este inconveniente el protocolo TCP hace uso de las técnicas comienzo lento "Slow Start" y
control de congestión. Estas técnicas son técnicas de control de flujo impuestas en el emisor para evitar
Las técnicas slow start y control de congestión consisten en que el transmisor de segmentos TCP hace
uso de los parámetros de control: ventana de congestión y umbral de congestión. El parámetro de control
ventana de congestión es utilizado para calcular el máximo número de segmentos que pueden ser
El valor inicial del parámetro congestión de ventana es igual al parámetro MSS y el valor inicial del
umbral de congestión es igual a 65535. Por cada número de acuse recibido de cada segmento transmitido
8
el parámetro congestión de ventana se incrementa a un MSS; esto implica un posible crecimiento
El máximo número de segmentos TCP que el transmisor puede enviar en un momento dado es
ventana, es decir; que si el valor del parámetro Ventana es igual a 4096 bytes y el parámetro Congestión
de ventana es igual a 2048 bytes. El transmisor de segmentos TCP hará uso del parámetro congestión
de ventana para determinar el máximo número de segmentos que pueden ser transmitidos en un
momento dado. El crecimiento del parámetro congestión de ventana se detiene hasta que el mismo sea
Si el transmisor de segmentos TCP detecta un posible momento de congestión en la red debido a que el
tiempo de espera de un número de acuse recibido expiró, el protocolo slow start se inicia nuevamente
inicializando la ventana de congestión con el valor asignado al MSS y el parámetro umbral de congestión
se le asigna un valor igual a la mitad de la ventana de transmisión, pero nunca por debajo de dos
segmentos. Esto implica que el umbral de congestión es determinado por la siguiente fórmula:
Umbral de congestión = max [2 segmentos, 1 / 2 min (ventana, ventana de congestión)]. Luego la técnica
slow start entra en acción hasta que el parámetro congestión de ventana sea mayor que el umbral de la
congestión. Cuando esto ocurre el crecimiento de la ventana de congestión deja de ser exponencial ya
que se incrementa a uno no por cada número de acuse recibido por segmento sino por el grupo de
9
números de acuse recibido del rango de segmentos que son incluidos en la ventana de congestión en ese
momento. Se dice que el protocolo de transmisión TCP se encuentra en el estado slow start si la ventana
congestión.
El control de congestión es una serie de comportamientos determinados por algoritmos que cada entidad
TCP implementa en un intento de prevenir que la red sea sobrecargada debido a que la cantidad de
paquetes que se inyectan en ella es mayor al troughput o capacidad de procesamiento de datos de los
nodos que la componen. Esto genera toda una serie de problemas tales como subida de la latencia,
dropeo de paquetes en routers debido a que sus buffers (colas generalmente) se llenan e incluso bloqueo
de las conexiones. Cuando la carga de la red llega a niveles críticos de congestión ocurre un fenómeno
llamado colapso de la red en la que a medida que la carga que se pone en ella aumenta, disminuye
enormemente el “goodput” (tráfico útil en la red, througput de información relevante a los usuarios de
la red).
10
Dicho esto, el control de congestión tiene como objetivo que la congestión en una red dada no aumente
a niveles donde potencialmente la red puede colapsar y en lo posible disminuirla. Esto se logra en esencia
Fig1 (mayumi-ittizi.blogspot.pe/las-
telecomunicaciones-portatiles.html)
Fig2
11
Velocidad de procesamiento de R1 = 1mbps
Velocidad de procesamiento de R2 = 1mbps
-Velocidad de procesamiento insuficiente en los nodos. e.g. R1 recibe de A y B datos a 1 mpbs que
tienen como destino a C, por lo que en total recibe 2mbps que debe procesar y retransmitir a R2;
como su velocidad de procesamiento es de 1 mbps, por cada segundo el espacio libre en su buffer
-Velocidad del enlace insuficiente: Veamos el caso del enlace de R2 a C. Digamos que R2 recibe a una
tasa constante de 1mbps información desde R1 que tiene como destino a C, como R2 puede 1mbps su
búfer no está sujeto a un eventual overflow por velocidad de procesamiento insuficiente. Sin embargo,
la velocidad del enlace de R2 a C es de 0.5mbps por lo que si el flujo de datos que R2 recibe de R1 es
información a una tasa mayor o igual a la que ingresa produciendo overflow, perdida de paquetes y
congestión.
Cuatro algoritmos para el control de congestión en TCP se especifican en el RFC 5681. A saber:
slow start
congestion avoidance
fast retransmit
fast recovery
12
Estos algoritmos trabajan ajustando el límite de datos que cualquier entidad TCP puede inyectar a la red
en un momento dado. La cantidad de datos que puede enviar una entidad TCP se actualiza
máxima de datos a enviar está determinado por el mínimo entre los valores de estos dos campos.
La congestión como efecto no deseable en las redes se manifiesta a través de perdida de paquetes (cuando
ocurre un overflow) y por el aumento de la latencia (cuando los paquetes terminan encolados en nodos
intermedios).
En las primeras versiones de TCP usadas en ARPANET se utilizaba un tamaño de ventana deslizante
fijo para el control de flujo. A medida que esta red crecía en tamaño empezó a observarse un curioso
fenómeno:
Los enlaces se mantenían ocupados enviando información a través de la red pero la tasa de transferencia
se reducía notablemente. Así se deslumbró por primera vez lo que conocemos como congestión. Dicho
fenómeno amenazaba seriamente al futuro de la red completa ya que a medida que el tráfico aumenta
por la adición de nodos también lo hace la carga, aumentando la frecuencia con la que la congestión y
13
No es sino hasta fines de los años 80 que, de la mano de Van Jacobson, se introducen los principios de
control de congestión y soluciones prácticas cuyas especificaciones se dan las versiones Tahoe y Reno
La ventana de congestión (cwnd) es una solución que se implementa sobre la ventana deslizante
previamente definida en versiones anteriores de TCP y que permite el ajuste dinámico de esta para que
cada entidad TCP pueda regular su propio uso de la red y así evitar la congestión. Limita desde el lado
del emisor la cantidad de datos que este puede inyectar a la red antes de recibir un ACK. La cantidad de
datos que pueda inyectar finalmente estará dada por el mínimo entre la ventana de congestion y la
El valor inicial (IW) de la ventana de congestión (esto es el valor que toma luego de establecer la
conexión mediante un three-way handshake) debe tener como límite superior el siguiente:
14
¿Qué es Slow Start?
Slow Start es un algoritmo usado por un emisor TCP para controlar la cantidad de datos que están siendo
inyectados en la red. Slow Start se utiliza en el incremento inicial del tamaño de la ventana de congestión
Este algoritmo incrementa exponencialmente el tamaño de la ventana inicial con cada ACK recibido
hasta llegar al valor declarado en otra variable de estado llamada slow start threshold (ssthresh). Cuando
cwnd > ssthresh se pasa a un incremento lineal del tamaño de cwnd por RTT usando un algoritmo de
congestion avoidance (evitación de congestión) (basado en AIMD, sin embargo, cabe destacar que no
realiza un decremento multiplicativo, sino que siempre vuelve al tamaño de la ventana inicial).
15
CONCLUSIONES:
Podemos concluir que el protocolo TCP puede controlar la cantidad de datos que debe enviar mediante
el segmento TCP. El receptor de un segmento con el campo Window a cero, no puede enviar mensajes
Un mensaje de prueba es un mensaje de un solo octeto que se utiliza para detectar redes o hosts
inalcanzables.
. multiplexing, demultiplexing
. Transferencia confiable de
. datos
. Control de flujo
. Control de congestión
16
REFERENCIAS BIBLIOGRÁFICAS
Feit TCP/IP
Editorial McGraw-Hill, primera edición 1998
Greer Tyson.
Editorial Microsoft Press primera edición 1997
RFC 2001 TCP Slow Start, Congestion Avoidance, Fat Retransmit, and
Fast Recovery Algorithms - https://tools.ietf.org/html/rfc2001