REDES Y TELECOMUNICACIONES

Ing. Luis Cedeño H.

Trabajo No. 1

Tema TCP / IP:

Sub-Temas:

1. Historia TCP y Arquitectura de TCP / IP Miguel Rivera

2. Características de TCP / IP y como funciona Engelber Guevara

3. Protocolo TCP y Protocolo IP Luis Cedeño

Los protocolos son un conjunto de reglas y convenciones de comunicación, que establecen las comunicaciones a través de las redes de telecomunicaciones entre usuarios o computadoras distintas que manejan lenguajes diferentes. TCP / IP no es un único protocolo, se conoce con ese nombre, pero en realidad es un conjunto de protocolos que cubren los distintos niveles del modelo OSI. Los dos protocolos más importantes son TCP (transmisión Control Protocol) e IP (Internet Protocol) los que dan el nombre al conjunto. TCP se encarga del flujo de paquetes y asegura que los datos estén correctos mientras que IP lleva los paquetes de un sitio a otro. El protocolo TCP / IP es muy conocido porque permite que Internet sea una red de redes.

TCP / IP SUB - TEMA 3: PROTOCOLO TCP Y PROTOCO IP

SUB-TEMA PROTOCOLO - TCP

El protocolo TCP es:

2- Orientado a Conexión: Es necesario establecer una conexión previa entre dos máquinas antes de poder transmitir ningún dato. A través de esta conexión los datos llegarán siempre a la aplicación destino de forma ordenada y sin duplicados. Finalmente, es necesario cerrar la conexión.

Una entidad de transporte TCP acepta mensajes de longitud grande proveniente de los procesos de los usuarios, los separa en pedazos o paquetes que no exceden los 64 Kbytes y transmite cada paquete como si fuera un datagrama separado. Estos viajan por un circuito virtual. Es conocido que los datagramas IP pueden seguir rutas distintas, dependiendo del estado de los enrrutadores intermedios, para llegar a un mismo sitio, esto significa que los datagramas IP que transportan los mensajes siguen rutas diferentes aunque el protocolo TCP logre la ilusión de que existe un único circuito por el que viajan todos los bytes uno detrás del otro. Para que esto sea posible es necesario abrir previamente una conexión que garantice que todos los datos lleguen correctamente de forma ordenada y sin duplicados y dependerá de TCP la tarea de reensamblarlos en mensajes con la secuencia correcta.

Cada octeto o byte transmitido por TCP tiene su propio número de secuencia privado con una extensión de 32 bits. Cada byte no se envía inmediatamente después de ser generado por la aplicación, sino que se espera a que haya una cierta cantidad de bayte, se agrupan en un segmento y se envía el segmento completo. Este proceso se lleva a cabo en memorias o buffers. Cada uno de estos segmentos (ver figura 1) viajan en el campo de datos de un datagrama IP. Si el segmento es muy grande será necesario fragmentar el datagrama y si es muy pequeño se enviara más cabecera de datos, esto genera perdida de rendimiento, de allí lo importante de que el tamaño del paquete sea del mayor tamaño posible par evitar la fragmentación.

Formato de segmento TCP 1

0

10

20

30

0

1

2

3

4

5

6

7

8

9

0

1

2

3

3

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

Puerto TCP origen

Puerto TCP destino

Número de secuencia

Número de acuse de recibo

HLEN

Reservado

Bits código

Ventana

Suma de verificación

Puntero de urgencia

Opciones (si las hay)

Relleno

Datos

...

Figura 1 Formato del segmento TCP

En el formato del segmento TCP vemos como se integran en los campos de datos de un datagrma IP para su transmisión el flujo de bytes que produce una determinada aplicación, después de ser divididos en segmentos TCP. Para accesar a la descripción del significado de cada campo del formato haga Cick.

Una conexión son dos pares de direcciones IP:puerto, es posible que un mismo ordenador tenga dos conexiones distintas y simultaneas utilizando un mismo puerto. El protocolo TCP utiliza el concepto de conexión para identificar las transmisiones. Seguidamente se muestra un ejemplo con tres conexiones, las dos primera con el mismo servidor Web (puerto 80) y la tercera a un servidor FTP (puerto 21).

HOST 1

HOST 2

194.35.133.5:1256

135.22.8.165.:80

184.42.15.16:1305

135.22.8.165.:80

184.42.15.16:1323

135.22.10.15.:21

 

Figura 2. Tres conexiones distintas desde un mismo ordenador.

Para establecer una conexión, antes de transmitir cualquier información utilizando el protocolo TCP es necesario abrir una conexión. Un extremo hace una apertura pasiva y el otro una apertura activa, el mecanismo utilizado para establecer a conexión consta de tres vías:

Figura 3. Mecanismo de conexión de tres vías

1. La maquina que inicia la conexión hace una apertura activa enviando al otro extremo un mensaje que tenga el bit SYN=1 (activo). Le informa además del primer número de secuencia que utilizará para enviar sus mensajes.

2. La máquina receptora (un servidor generalmente) recibe el segmento con el bit SYN=1 (activo) y devuelve la confirmación, si desea abrir la conexión, activa el SYN =1 del segmento e informa de su primer número de secuencia, y deja abierta la conexión en su extremo.

3. La maquina que inició la conexión recibe el segmento y envía su confirmación, a partir de este momento queda establecida la conexión.

Vemos que fueron necesarios tres segmentos para que ambas maquinas establecieran conexión, el primero lo envió la maquina que solicito la conexión, el segundo la receptora indicando la recepción de su solicitud e indicando que acepta la solicitud y el tercero lo envía la primera maquina enviando confirmación de recibo y deja abierto su puerto.

Para cerrar la conexión, cuando una aplicación no va a enviar más datos, el procedimiento normal es cerrar la conexión utilizando una variación del mecanismo de 3 vías utilizando para la conexión:

Figura 4. Mecanismo de desconexión

El mecanismo de cierre es algo más complicado que el de establecimiento de conexión debido a que las conexiones son full-duplex y es necesario cerrar cada uno de los dos sentidos de forma independiente.

  1. La maquina que no va a enviar más datos, envía un segmento con el bit FIN=1 (activo) y cierra el sentido de envío, pero el puerto de conexión del lado receptor sigue activo.
  2. La máquina receptora cuando recibe el bit SYN=1 (activo) devuelve la confirmación, pero no cierra inmediatamente el sentido de la conexión, antes de cerrar informa a la aplicación la petición de desconexión, aquí se produce un lapso de tiempo hasta que la aplicación decide cerrar el otro sentido de la conexión.
  3. La primera maquina recibe el segmentos ACK, (acuse de recibo).
  4. Cuando la maquina receptora toma la decisión de cerrar el otro sentido de la comunicación, envía un segmento con el bit FIN activado y cierra la conexión.
  5. La primera maquina recibe el segmento FIN=1 y envía el correspondiente ACK (acuse de recibo), el cual es recibido por la maquina receptora.

Vemos que aunque se haya cerrado el sentido de conexión se siguen enviando y devolviendo las confirmaciones

2. Fiabilidad: La información que envía el emisor llega de forma correcta al destino.

Los datos de las aplicaciones llegan de forma segura y correcta al destino, porque cada vez que llega un mensaje se devuelve una confirmación (acknowledgeement) para que el emisor sepa que ha llegado correctamente. Si no le llega esta confirmación pasado un cierto tiempo, el emisor reenvía el mensaje.

Para proporcionar una comunicación fiable, el emisor envía un dato, arranca su temporizador y espera su confirmación (ACK), si recibe el ACK antes de agotarse el temporizador, envía el siguiente dato. Si se agota el temporizador antes de recibir el ACK, reenvía el mensaje, en la figura 5 se representa este comportamiento.

Figura 5. Establecimiento de una comunicación fiable.

Este esquema es perfectamente válido aunque muy ineficiente debido a que sólo se utiliza un sentido de la comunicación a la vez y el canal se está desaprovechando la mayor parte del tiempo. Para solucionar ese problema se utiliza un protocolo de ventana deslizante, que se resume en la figura 6. Donde los mensajes y las confirmaciones van numerado y el emisor puede enviar más de un mensaje antes de haber recibido todas las confirmaciones anteriores.

Figura 6. Establecimiento de una comunicación fiable, con el protocolo venta deslizante.

  

[Siguiente]

 Última Actualización: 22ABR05

[Principal] [Sintesis] [Pagina Trabajo] [IP] [Datagrama IP] [Datagrama TCP]

[Infografia]