martes, 15 de marzo de 2016

Identificando protocolos TCP/IP



QUE ES TCP/IP 

El nombre TCP/IP proviene de dos de los protocolos más importantes de la familia de protocolos Internet, el Transmisión Control Protocol (TCP) y el Internet Protocol (IP).
TCP/IP es el nombre de un protocolo de conexión de redes. 

Un protocolo es un conjunto de reglas a las que se tiene que atener todas la compañías y productos de software con él fin de que todos sus productos sean compatibles entre ellos. 

Una red TCP/IP transfiere datos mediante el ensamblaje de bloque de datos en paquetes. Cada paquete comienza con una cabecera que contiene información de control, tal como la dirección del destino, seguida de los datos. Cuando se envía un archivo a través de una red TCP/IP, su contenido se envía utilizando una serie de paquetes diferentes.


 FUNCIÓN 
– El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

– El protocolo IP, funciona en el nivel de red del modelo OSI, que nos permite encaminar nuestros datos hacia otras maquinas.

Pero un protocolo de comunicaciones debe solucionar una serie de problemas relacionados con la comunicación entre ordenadores , además de los que proporciona los protocolos TCP e IP .

El formato de los datos en TCP

Un segmento TCP está formado de la siguiente manera:

URG
ACK
PSH
RST
SYN
FIN





012345678910111213141516171819202122232425262728293031
Puerto de origenPuerto de destino
Número de secuencia
Número de acuse de recibo
Margen
de datos
Reservado
Ventana
Suma de control
Puntero urgente
OpcionesRelleno
Datos

Cómo establecer una conexión

Considerando que este proceso de comunicación, que se produce con la transmisión y el acuse de recibo de datos, se basa en un número de secuencia, las máquinas originadora y receptora (cliente y servidor) deben conocer el número de secuencia inicial de la otra máquina.
La conexión establecida entre las dos aplicaciones a menudo se realiza siguiendo el siguiente esquema:
  • Los puertos TCP deben estar abiertos.
  • La aplicación en el servidor es pasiva, es decir, que la aplicación escucha y espera una conexión.
  • La aplicación del cliente realiza un pedido de conexión al servidor en el lugar donde la aplicación es abierta pasiva. La aplicación del cliente se considera "abierta activa".
Este diálogo posibilita el inicio de la comunicación porque se realiza en tres etapas, como su nombre lo indica:
Negociación en tres pasos
  • En la primera etapa, la máquina originadora (el cliente) transmite un segmento donde el indicador SYN está fijado en 1 (para indicar que es un segmento de sincronización), con número de secuencia N llamado número de secuencia inicial del cliente.
  • En la segunda etapa, la máquina receptora (el servidor) recibe el segmento inicial que viene del cliente y luego le envía un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el indicador SYN está fijado en 1 (porque es nuevamente una sincronización). Este segmento incluye el número de secuencia de esta máquina (el servidor), que es el número de secuencia inicial para el cliente. 
  • Por último, el cliente transmite un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el indicador SYN está fijado en 0 (ya no es un segmento de sincronización). Su número de secuencia está incrementado y el acuse de recibo representa el número de secuencia inicial del servidor incrementado en 1.
  • Después de esta secuencia con tres intercambios, las dos máquinas están sincronizadas y la comunicación puede comenzar.

Cómo terminar una conexión

El cliente puede pedir que se termine una conexión del mismo modo que el servidor. 
Para terminar una conexión se procede de la siguiente manera:
  • Una de las máquinas envía un segmento con el indicador FIN fijado en 1, y la aplicación se auto coloca en estado de espera, es decir que deja de recibir el segmento actual e ignora los siguientes.
  • Después de recibir este segmento, la otra máquina envía un acuse de recibo con el indicador FIN fijado en 1 y sigue enviando los segmentos en curso. Después de esto, la máquina informa a la aplicación que se ha recibido un segmento FIN y luego envía un segmento FIN a la otra máquina, que cierra la conexión.