Anda di halaman 1dari 17

CURSO: REDES Y COMUNICACIONES DE DATOS I

PROFESOR: PEDRO MANTILLA

ALUMNO: KEVIN YOSHET CÁRDENAS PACHECO

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

de algún recurso (ancho de banda, memoria, capacidad de procesamiento, etc.)

Síntomas: Aumentan los retardos y las pérdidas.

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

una situación de bloqueo.

2
MARCO TEORICO

Control de Flujo del TCP

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.

 Control de flujo y congestión.

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

Origen incluidos en una cabecera IP con el fin de satisfacer el mecanismo de multiplexamiento.

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

conexión bidireccional entre una aplicación cliente y una aplicación servidor.

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

número de un puerto es la IANA "Internet Assigned Numbers Authority".

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

puerto destino es el número de puerto de la aplicación destino.

Mecanismo de conexión:

Como el protocolo TCP es un protocolo orientado a conexión, es necesario iniciar y mantener la

información del estado para cada conexión TCP. Cada conexión queda identificada de forma única por

un par de conectores que corresponden con sus dos extremos "Socket".

4
Cuando dos procesos "cliente/servidor" desean comunicarse, el protocolo TCP debe establecer primero

una conexión (inicializar la información de estado en cada lado) y cuando la comunicación se ha

completado, la conexión se termina con la intención de liberar recursos en el sistema.

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

de acuerdo que usa números de secuencia para la inicialización de las conexiones.

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

últimos datos enviados por el emisor y su función es la de notificar el cierre de la conexión.

 RST: La función del parámetro RST es la de reiniciar la conexión.

 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

igual a uno lógico este campo refleja el número de secuencia inicial.

 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

indica que el segmento anterior fue recibido sin errores.

 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

Mecanismo de control de flujo

El protocolo TCP está diseñado para controlar el envío y recepción de segmentos TCP a fin de evitar

momentos de congestión en la red. Las principales técnicas de control de flujo implementadas en el

protocolo TCP son:

 Desplazamiento de ventana "Sliding Window".

 Comienzo lento "Slow Start" y control de congestión.

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

momentos de congestión en la red.

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

transmitidos por el transmisor en un momento determinado. Y el parámetro umbral de congestión es

utilizado para detectar momentos de congestión en la red.

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

exponencial de este parámetro.

El máximo número de segmentos TCP que el transmisor puede enviar en un momento dado es

seleccionado por el mínimo valor de la comparación de los parámetros Ventana y Congestión de

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

igual al parámetro de control ventana.

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

de congestión es menor o igual al umbral de congestión. Y si la ventana de congestión es mayor que el

umbral de congestión se dice que el protocolo de transmisión se encuentra en un estado de control de

congestión.

¿Qué es el control de congestión? ¿Para qué sirve?

¿Cómo se utiliza en TCP?

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

bajando la velocidad en la que los nodos de la red se comunican

Fig1 (mayumi-ittizi.blogspot.pe/las-

telecomunicaciones-portatiles.html)

¿Cuáles son las causas de congestión? ¿Cómo se manifiestan?

Fig2

Sea esta figura donde:

Ancho de banda de enlace A→R1 = 1mbps


Ancho de banda de enlace B→R1 = 1mbps
Ancho de banda de enlace R1→R2 = 2 mbps
Ancho de banda de enlace R2→C = 0,5 mbps

11
Velocidad de procesamiento de R1 = 1mbps
Velocidad de procesamiento de R2 = 1mbps

Las causas de congestión en una red se dan por diferentes motivos:

-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

interno se reduce en un mb, si las transmisiones de A y B son lo suficientemente largas, el buffer de

R1 se sobrecargará produciendo perdida de paquetes y congestión

-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

lo suficientemente grande, eventualmente el buffer de R2 se llenará ya que no puede retransmitir la

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

dinámicamente en un campo llamado “Ventana de congestión” y “Ventana de receptor”, la cantidad

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).

¿Qué es la ventana de congestión? ¿Cómo se calcula?

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

el eventual colapso de la red ocurrían.

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

de TCP, en 1988 y 1990 respectivamente.

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

ventana definida por el receptor.

Su cálculo inicial, tal como se detalla en el RFC 5681 se da de la siguiente forma:

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:

Si SMSS > 2190 bytes:

IW = 2 * SMSS bytes y no puede ser más de 2 segmentos

Si (SMSS > 1095 bytes) y (SMSS <= 2190 bytes):

IW = 3 * SMSS bytes y no puede ser más de 3 segmentos

Si SMSS <= 1095 bytes:

IW = 4 * SMSS bytes y no puede ser más de 4 segmentos


SMSS: Sender maximum segment size (tamaño máximo de segmento del emisor)

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

o cuando se produce un reinicio de la conexió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

al emisor, excepto mensajes de prueba.

Un mensaje de prueba es un mensaje de un solo octeto que se utiliza para detectar redes o hosts

inalcanzables.

Principios detrás de los servicios de capa transporte:

. 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

 TCP/IP illustrated.—2nd ed. / Kevin R. Fall, W. Richard Stevens.

 Redes de computadoras, 5ta edición / Andrew S. Tanenbaum & David J. Wetherall.

 RFC 793 Transmission control Protocol - https://tools.ietf.org/html/rfc793

 RFC 1122 Requirements for Internet Hosts -


Communication Layers -
https://tools.ietf.org/html/rfc1122

 RFC 1323 TCP Extensions for High Performance - https://tools.ietf.org/html/rfc1323

 RFC 2001 TCP Slow Start, Congestion Avoidance, Fat Retransmit, and
Fast Recovery Algorithms - https://tools.ietf.org/html/rfc2001

 RFC 5681 TCP Congestion Control https://tools.ietf.org/html/rfc5681

 TCP Vegas: New techniques for congestion detection and


avoidance (1994)
http://pages.cs.wisc.edu/~akella/CS740/S08/740-
Papers/BOP94.pdf
 RFC 2205 Resource ReSerVation Protocol - https://tools.ietf.org/html/rfc2205
 RSVP ReSource ReserVation Protocol -
http://docwiki.cisco.com/wiki/Resource_Reservation_Protocol

 TCP/IP guide http://www.tcpipguide.com


17

Anda mungkin juga menyukai