¿Alguna vez se ha preguntado cómo se comunica su computadora con otras computadoras en su LAN local o con otros sistemas en Internet?
Comprender las complejidades de cómo interactúan las computadoras es una parte importante de las redes y es de igual interés para un administrador de sistemas que para un desarrollador. En este artículo, haremos un intento de discutir el concepto de comunicación desde el nivel fundamental más básico que debe ser entendido por todos.
CONJUNTO DE PROTOCOLO TCP/IP
Las comunicaciones entre computadoras en una red se realizan a través de trajes de protocolo. El conjunto de protocolos más utilizado y disponible es el conjunto de protocolos TCP/IP. Un traje de protocolo consta de una arquitectura en capas en la que cada capa representa alguna funcionalidad que puede llevar a cabo un protocolo. Cada capa suele tener más de una opción de protocolo para llevar a cabo la responsabilidad a la que se adhiere la capa. Normalmente se considera que TCP/IP es un sistema de 4 capas. Las 4 capas son las siguientes:
- Capa de aplicación
- Capa de transporte
- capa de red
- Capa de enlace de datos
1. Capa de aplicación
Esta es la capa superior del conjunto de protocolos TCP/IP. Esta capa incluye aplicaciones o procesos que usan protocolos de capa de transporte para entregar los datos a las computadoras de destino.
En cada capa hay ciertas opciones de protocolo para llevar a cabo la tarea asignada a esa capa en particular. Entonces, la capa de aplicación también tiene varios protocolos que las aplicaciones usan para comunicarse con la segunda capa, la capa de transporte. Algunos de los protocolos de capa de aplicación populares son:
- HTTP (protocolo de transferencia de hipertexto)
- FTP (Protocolo de transferencia de archivos)
- SMTP (protocolo simple de transferencia de correo)
- SNMP (protocolo simple de administración de red), etc.
2. Capa de Transporte
Esta capa proporciona la columna vertebral para el flujo de datos entre dos hosts. Esta capa recibe datos de la capa de aplicación por encima de ella. Hay muchos protocolos que funcionan en esta capa, pero los dos protocolos más utilizados en la capa de transporte son TCP y UDP.
TCP se usa cuando se requiere una conexión confiable, mientras que UDP se usa en caso de conexiones poco confiables.
TCP divide los datos (procedentes de la capa de aplicación) en fragmentos de tamaño adecuado y luego pasa estos fragmentos a la red. Confirma los paquetes recibidos, espera los reconocimientos de los paquetes que envió y establece el tiempo de espera para volver a enviar los paquetes si los reconocimientos no se reciben a tiempo. El término "conexión confiable" se usa cuando no se desea perder ninguna información que se transfiere a través de la red a través de esta conexión. Por lo tanto, el protocolo utilizado para este tipo de conexión debe proporcionar el mecanismo para lograr esta característica deseada. Por ejemplo, al descargar un archivo, no se desea perder ninguna información (bytes), ya que puede provocar la corrupción del contenido descargado.
UDP proporciona un servicio comparativamente más simple pero poco confiable mediante el envío de paquetes de un host a otro. UDP no toma ninguna medida adicional para garantizar que el host de destino reciba o no los datos enviados. El término "conexión no confiable" se utiliza cuando la pérdida de alguna información no impide que la tarea se realice a través de esta conexión. Por ejemplo, mientras se transmite un video, la pérdida de algunos bytes de información por algún motivo es aceptable, ya que esto no perjudica mucho la experiencia del usuario.
3. Capa de red
Esta capa también se conoce como capa de Internet. El propósito principal de esta capa es organizar o manejar el movimiento de datos en la red. Por movimiento de datos, generalmente nos referimos al enrutamiento de datos a través de la red. El principal protocolo utilizado en esta capa es IP. Mientras que ICMP (usado por el popular comando 'ping') e IGMP también se usan en esta capa.
4. Capa de enlace de datos
Esta capa también se conoce como capa de interfaz de red. Esta capa normalmente consta de controladores de dispositivos en el sistema operativo y la tarjeta de interfaz de red conectada al sistema. Tanto los controladores de dispositivo como la tarjeta de interfaz de red se encargan de los detalles de comunicación con los medios que se utilizan para transferir los datos a través de la red. En la mayoría de los casos, este medio es en forma de cables. Algunos de los protocolos famosos que se utilizan en esta capa incluyen ARP (Protocolo de resolución de direcciones), PPP (Protocolo punto a punto), etc.
EJEMPLO DEL CONCEPTO TCP/IP
Una cosa que vale la pena tener en cuenta es que la interacción entre dos computadoras a través de la red a través del conjunto de protocolos TCP/IP se lleva a cabo en forma de una arquitectura de servidor cliente.
El cliente solicita un servicio mientras el servidor procesa la solicitud del cliente.
Ahora, ya que hemos discutido las capas subyacentes que ayudan a que los datos fluyan del host al destino a través de una red. Tomemos un ejemplo muy simple para aclarar el concepto.
Considere el flujo de datos cuando abre un sitio web.
Como se ve en la figura anterior, la información fluye hacia abajo a través de cada capa en la máquina host. En la primera capa, dado que se utiliza el protocolo http, se forma una solicitud HTTP y se envía a la capa de transporte.
Aquí, el protocolo TCP asigna más información (como número de secuencia, número de puerto de origen, número de puerto de destino, etc.) a los datos provenientes de la capa superior para que la comunicación siga siendo confiable, es decir, se podría mantener un seguimiento de los datos enviados y recibidos.
En la siguiente capa inferior, IP agrega su propia información sobre los datos provenientes de la capa de transporte. Esta información ayudaría a que los paquetes viajen por la red. Por último, la capa de enlace de datos se asegura de que la transferencia de datos hacia/desde el medio físico se realice correctamente. Aquí nuevamente, la comunicación realizada en la capa de enlace de datos puede ser confiable o no confiable.
Esta información viaja en los medios físicos (como Ethernet) y llega a la máquina de destino.
Ahora, en la máquina de destino (que en nuestro caso es la máquina en la que está alojado el sitio web) ocurre la misma serie de interacciones, pero en orden inverso.
El paquete se recibe primero en la capa de enlace de datos. En esta capa, se lee la información (que fue rellenada por el protocolo de capa de enlace de datos de la máquina host) y el resto de los datos se pasa a la capa superior.
De manera similar, en la capa de red, la información establecida por el protocolo de capa de red de la máquina host se lee y el resto de la información se pasa a la siguiente capa superior. Lo mismo sucede en la capa de transporte y, finalmente, la solicitud HTTP enviada por la aplicación host (su navegador) es recibida por la aplicación de destino (servidor del sitio web).
Uno se preguntaría qué sucede cuando los protocolos correspondientes en la máquina de destino leen la información particular de cada capa o por qué es necesaria. Bueno, entendamos esto con un ejemplo del protocolo TCP presente en la capa de transporte. En la máquina host, este protocolo agrega información como el número de secuencia a cada paquete enviado por esta capa.
En la máquina de destino, cuando el paquete llega a esta capa, el TCP de esta capa toma nota del número de secuencia del paquete y envía un acuse de recibo (que se recibe con el número de secuencia + 1).
Ahora, si el host TCP no recibe el reconocimiento dentro de un tiempo específico, vuelve a enviar el mismo paquete. Entonces, de esta manera, TCP se asegura de que no se pierda ningún paquete. Entonces vemos que el protocolo en cada capa lee la información establecida por su contraparte para lograr la funcionalidad de la capa que representa.
PUERTOS, SERVIDORES Y ESTÁNDARES
En una máquina en particular, un número de puerto junto con la dirección IP de la máquina se conoce como socket. Una combinación de IP y puerto tanto en el cliente como en el servidor se conoce como cuatro tuplas. Esta tupla de cuatro identifica de forma única una conexión. En esta sección discutiremos cómo se eligen los números de puerto.
Ya sabe que algunos de los servicios más comunes como FTP, telnet, etc. se ejecutan en números de puerto conocidos. Mientras que el servidor FTP se ejecuta en el puerto 21, el servidor Telent se ejecuta en el puerto 23. Entonces, vemos que algunos servicios estándar proporcionados por cualquier implementación de TCP/IP tienen algunos puertos estándar en los que se ejecutan. Estos números de puerto estándar generalmente se eligen del 1 al 1023. Los puertos conocidos son administrados por la Autoridad de Números Asignados de Internet (IANA).
Si bien la mayoría de los servidores estándar (que son proporcionados por la implementación de la suite TCP/IP) se ejecutan en números de puerto estándar, los clientes no requieren ningún puerto estándar para ejecutarse.
Los números de puerto del cliente se conocen como puertos efímeros. Por efímero entendemos de corta duración. Esto se debe a que un cliente puede conectarse al servidor, hacer su trabajo y luego desconectarse. Así que usamos el término "de corta duración" y, por lo tanto, no se requieren puertos estándar para ellos.
Además, dado que los clientes necesitan conocer los números de puerto de los servidores para conectarse a ellos, la mayoría de los servidores estándar se ejecutan en números de puerto estándar.
Los puertos reservados para clientes generalmente van desde 1024 a 5000. Los números de puerto superiores a 5000 están reservados para aquellos servidores que no son estándar o conocidos.
Si miramos el archivo '/etc/services', encontrará la mayoría de los servidores estándar y el puerto en el que se ejecutan.
$ cat /etc/services systat 11/tcp users daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/udp chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp ssh 22/tcp ssh 22/udp telnet 23/tcp ... ... ...
Como puede ver en el archivo /etc/services, FTP tiene el número de puerto 21, telent tiene el número de puerto 23, etc. Puede usar el comando 'grep' en este archivo para encontrar cualquier servidor y su puerto asociado.
En lo que respecta a los estándares, las siguientes cuatro organizaciones/grupos administran el conjunto de protocolos TCP/IP. Tanto la IRTF como la IETF se encuentran bajo la IAB.
- La Sociedad de Internet (ISOC)
- La Junta de Arquitectura de Internet (IAB). El IAB cae bajo el ISOC.
- El Grupo de Trabajo de Ingeniería de Internet (IETF)
- El Grupo de Trabajo de Investigación de Internet (IRTF)