¿Qué es TCP/IP?  

Posted by Danny in

Cuando se habla de TCP/IP , se relaciona automáticamente como el protocolo sobre el que funciona la red Internet . Esto , en cierta forma es cierto , ya que se le llama TCP/IP , a la familia de protocolos que nos permite estar conectados a la red Internet . Este nombre viene dado por los dos protocolos estrella de esta familia :

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

Arquitectura de protocolos TCP/IP

Para poder solucionar los problemas que van ligados a la comunicación de ordenadores dentro de la red Internet , se tienen que tener en cuenta una serie de particularidades sobre las que ha sido diseñada TCP/IP:

- Los programas de aplicación no tienen conocimiento del hardware que se utilizara para realizar la comunicación (módem, tarjeta de red...)

- La comunicación no esta orientada a la conexión de dos maquinas, eso quiere decir que cada paquete de información es independiente, y puede viajar por caminos diferentes entre dos maquinas.

- La interfaz de usuario debe ser independiente del sistema, así los programas no necesitan saber sobre que tipo de red trabajan.

- El uso de la red no impone ninguna topología en especial (distribución de los distintos ordenadores).

De esta forma, podremos decir, que dos redes están interconectadas, si hay una maquina común que pase información de una red a otra. Además, también podremos decir que una red Internet virtual realizara conexiones entre redes, que ha cambio de pertenecer a la gran red, colaboraran en el trafico de información procedente de una red cualquiera, que necesite de ella para acceder a una red remota. Todo esto independiente de las maquinas que implementen estas funciones, y de los sistemas operativos que estas utilicen .

Descomposición en niveles de TCP/IP.

Toda arquitectura de protocolos se descompone en una serie de niveles , usando como referencia el modelo OSI . Esto se hace para poder dividir el problema global en subproblemas de mas fácil solución .

Al diferencia de OSI , formado por una torre de siete niveles , TCP/IP se descompone en cinco niveles , cuatro niveles software y un nivel hardware . A continuación pasaremos a describir los niveles software , los cuales tienen cierto paralelismo con el modelo OSI.

Nivel de aplicación

Constituye el nivel mas alto de la torre tcp/ip . A diferencia del modelo OSI , se trata de un nivel simple en el que se encuentran las aplicaciones que acceden a servicios disponibles a través de Internet . Estos servicios están sustentados por una serie de protocolos que los proporcionan . Por ejemplo , tenemos el protocolo FTP (File Transfer Protocol), que proporciona los servicios necesarios para la transferencia de ficheros entre dos ordenadores.

Otro servicio, sin el cual no se concibe Internet , es el de correo electrónico, sustentado por el protocolo SMTP (Simple Mail Transfer Protocol) .

Nivel de transporte

Este nivel proporciona una comunicación extremo a extremo entre programas de aplicación. La maquina remota recibe exactamente lo mismo que le envió la maquina origen. En este nivel el emisor divide la información que recibe del nivel de aplicación en paquetes, le añade los datos necesarios para el control de flujo y control de errores , y se los pasa al nivel de red junto con la dirección de destino.

En el receptor este nivel se encarga de ordenar y unir las tramas para generar de nuevo la información original.

Para implementar el nivel de transporte se utilizan dos protocolos :

- UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas añade información al paquete que envía al nivel inferior, solo la necesaria para la comunicación extremo a extremo. Lo utilizan aplicaciones como NFS y RPC, pero sobre todo se emplea en tareas de control.

- TCP (Transport Control Protocolo): es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Esta pensado para poder enviar grandes cantidades de información de forma fiable, liberando al programador de aplicaciones de la dificultad de gestionar la fiabilidad de la conexión (retransmisiones, perdidas de paquete, orden en que llegan los paquetes ,duplicados de paquetes, ...) que gestiona el propio protocolo. Pero la complejidad de la gestión de la fiabilidad tiene un coste en eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene que añadir bastante información a los paquetes a enviar. Debido a que los paquetes a enviar tienen un tamaño máximo, como mas información añada el protocolo para su gestión , menos información que proviene de la aplicación podrá contener ese paquete. Por eso, cuando es mas importante la velocidad que la fiabilidad, se utiliza UDP, en cambio TCP asegura la recepción en destino de la información a transmitir.

Nivel de red

También recibe el nombre de nivel Internet. Coloca la información que le pasa el nivel de transporte en datagramas IP, le añade cabeceras necesaria para su nivel y lo envía al nivel inferior. Es en este nivel donde se emplea el algoritmo de encaminamiento, al recibir un datagrama del nivel inferior decide, en función de su dirección, si debe procesarlo y pasarlo al nivel superior, o bien encaminarlo hacia otra maquina. Para implementar este nivel se utilizan los siguientes protocolos:

- IP (Internet Protocol): es un protocolo no orientado a la conexión, con mensajes de un tamaño máximo . Cada datagrama se gestiona de forma independiente, por lo que dos datagramas pueden utilizar diferentes caminos para llegar al mismo destino, provocando que lleguen en diferente orden o bien duplicados. Es un protocolo no fiable , eso quiere decir que no corrige los anteriores problemas, ni tampoco informa de ellos. Este protocolo recibe información del nivel superior y le añade la información necesaria para su gestión (direcciones IP , checksum)

- ICMP (Internet Control Message Protocol): proporciona un mecanismo de comunicación de información de control y de errores entre maquinas intermedias por las que viajaran los paquetes de datos . Esto datagramas los suelen emplear las maquinas (gateways, host, ...) para informarse de condiciones especiales en la red, como la existencia de una congestión , la existencia de errores y las posibles peticiones de cambios de ruta. Los mensajes de ICMP están encapsulados en datagramas IP.

- IGMP (Internet Group Management Protocol): este protocolo esta íntimamente ligado a IP . Se emplea en maquinas que emplean IP multicast . El IP multicast es una variante de IP que permite emplear datagramas con múltiples destinatarios .

También en este nivel tenemos una serie de protocolos que se encargan de la resolución de direcciones:

- ARP (Address Resolution Protocol): cuando una maquina desea ponerse en contacto con otra conoce su dirección IP , entonces necesita un mecanismo dinámico que permite conocer su dirección física . Entonces envía una petición ARP por broadcast ( o sea a todas las maquinas ). El protocolo establece que solo contestara a la petición , si esta lleva su dirección IP . Por lo tanto solo contestara la maquina que corresponde a la dirección IP buscada , con un mensaje que incluya la dirección física . El software de comunicaciones debe mantener una cache con los pares IP-dirección física . De este modo la siguiente vez que hay que hacer una transmisión a es dirección IP , ya conoceremos la dirección física.

- RARP (Reverse Address Resolution Protocol): a veces el problema es al revés, o sea, una máquina solo conoce su dirección física, y desea conocer su dirección lógica. Esto ocurre, por ejemplo, cuando se accede a Internet con una dirección diferente, en el caso de PC que acceden por módem a Internet, y se le asigna una dirección diferente de las que tiene el proveedor sin utilizar. Para solucionar esto se envía por broadcast una petición RARP con su dirección física , para que un servidor pueda darle su correspondencia IP.

- BOOTP (Bootstrap Protocol): el protocolo RARP resuelve el problema de la resolución inversa de direcciones, pero para que pueda ser mas eficiente, enviando más información que meramente la dirección IP, se ha creado el protocolo BOOTP. Este además de la dirección IP del solicitante , proporciona información adicional, facilitando la movilidad y el mantenimiento de las maquinas.

Nivel de enlace

Este nivel se limita a recibir datagramas del nivel superior (nivel de red) y transmitirlo al hardware de la red. Pueden usarse diversos protocolos: DLC(IEEE 802.2), Frame Relay, X.25, etc.

La interconexión de diferentes redes genera una red virtual en la que las maquinas se identifican mediante una dirección de red lógica. Sin embargo a la hora de transmitir información por un medio físico se envía y se recibe información de direcciones físicas. Un diseño eficiente implica que una dirección lógica sea independiente de una dirección física, por lo tanto es necesario un mecanismo que relacione las direcciones lógicas con las direcciones físicas. De esta forma podremos cambiar nuestra dirección lógica IP conservando el mismo hardware, del mismo modo podremos cambiar una tarjeta de red, la cual contiene una dirección física, sin tener que cambiar nuestra dirección lógica IP.

Entradas relacionadas:

0 comentarios

Publicar un comentario

Inscribete y recibe las noticias via e-mail

Archives

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog