TCP/IP

El Protocolo de Control de Transmisión y Protocolo Internet (Transmission Control Protocol and Internet Protocol, TCP/IP) es un juego de protocolos estandard desarrollados a finales de los 70 por el Defense Advanced Research Projects Agency (DARPA) como una forma de comunicarse entre diferentes tipo de equipos y redes. TCP/IP es el impulsor de Internet, y es el más popular juego de protocolos de red de la Tierra.

Introducción a TCP/IP

Los dos protocolos componentes del TCP/IP se encargan de aspectos diferentes en las redes de computadores. El Protocolo Internet (Internet Protocol), el «IP» del TCP/IP, es un protocolo sin conexión que se ocupa únicamente del encaminamiento de los paquetes a través de la red usando el datagrama IP como unidad básica de información en la red. Los datagramas IP constan de una cabecera seguida de un mensaje. El Protocolo de Control de Transmisión (Transmission Control Protocol) es el «TCP» del TCP/IP y permite que los hosts de la red puedan establecer conexiones que se utilizarán para intercambiar flujos de datos. El TCP también garantiza la entrega de los datos a través de las conexiones y que éstos llegarán al host de destino en el mismo orden en que fueron enviados desde el host de origen.

Configuración de TCP/IP

La configuración del protocolo TCP/IP consta de varios elementos que deben establecerse editando los archivos de configuración apropiados, o utilizando soluciones como el servidor de Protocolo de Configuración Dinámica de Hosts (Dynamic Host Configuration Protocol, DHCP) que, de hecho, puede configurarse para proporcionar automáticamente las opciones de configuración TCP/IP adecuadas para los clientes de la red. Esos valores de configuración deben establecerse adecuadamente para poder facilitar el correcto funcionamiento de la red en su sistema Ubuntu.

Los elementos de configuración comunes del TCP/IP y sus propositos son los siguientes:

  • Dirección IP La dirección IP es una cadena de identificación única expresada como cuatro números decimales que van desde 0 hasta 255, separados por puntos, donde cada uno de los cuatro números representan 8 bits de la dirección, de un total de 32 bits para la dirección completa. Este formato se denomina notación cuádruple con puntos.

  • Máscara de red La máscara de red (o máscara de subred) es una máscara local de bits, o conjunto de indicadores, que separan, en una dirección IP, la parte correspondiente a la red de la parte correspondiente a la subred. Por ejemplo, en una red de Clase C, la máscara de red estándar es 255.255.255.0, lo que enmascara los tres primeros bytes de la dirección IP y deja disponible el último byte de la dirección IP para poder especificar hosts en la subred.

  • Dirección de red La Dirección de red representa los bytes que comprenden la porción de red de una dirección IP. Por ejemplo, el host 12.128.1.2, en una red de clase A, usaría 12.0.0.0 como dirección de red, donde doce (12) representa el primer byte de la dirección IP (la parte correspondiente a la red) y ceros (0) en los tres bytes restantes para representar los valores de host potenciales. En cambio, un host de red usando la dirección IP privada 192.168.1.100 utilizaría una dirección de red 192.168.1.0, que especifica los primeros tres bytes de la red 192.168.1 de clase C y cero (0) para todos los posibles hosts de la red.

  • Dirección de difusión La Dirección de difusión es una dirección IP que permite enviar simultáneamente datos de red a todos los hosts de una subred determinada, en lugar de especificar un host en concreto. La dirección de difusión estándar para redes IP es 255.255.255.255, pero esta dirección de difusión no puede usarse para enviar un mensaje a todos los hosts de Internet porque los enrutadores lo bloquean. Se puede configurar una dirección de difusión más apropiada para ajustarla una subred determinada. Por ejemplo, en la red IP privada de clase C, 192.168.1.0, la dirección de difusión es 192.168.1.255. Los remitentes de mensajes de difusión normalmente son los protocolos de red, como el Address Resolution Protocol (ARP) y el Routing Information Protocol (RIP).

  • Dirección de pasarela o «puerta de enlace» (gateway) Una dirección de pasarela es la dirección IP a través de la cual se puede alcanzar una red, o un host concreto dentro de una red. Si el host de una determinada red desea comunicarse con otro host, y éste host no está en la misma red que el primero, se deberá usar una pasarela. En muchos casos, la dirección de pasarela será la dirección de un router de la red, que será el encargado de pasar el tráfico a otras redes o hosts, como por ejemplo los hosts de Internet. El valor de la dirección de pasarela debe ser correcto, o de lo contrario su sistema no será capaz de alcanzar ningún host que esté fuera de su red.

  • Dirección del servidor de nombres (nameserver) Las direcciones de los servidores de nombres representan direcciones IP de sistemas DNS (Domain Name Service, Servicio de Nombre de Dominio), encargados de convertir («resolver») nombres de hosts en direcciones IP. Hay tres niveles de direcciones de servidores de nombres, que se especifican por orden de preferencia: el servidor de nombres primario, el servidor de nombres secundario y el servidor de nombres terciario. Para que su sistema sea capaz de resolver nombres de hosts en sus correspondientes direcciones IP, debe especificar en la configuración TCP/IP de su sistema las direcciones válidas de servidores de nombre que usted esté autorizado a usar. En muchos casos, esas direcciones pueden y deben ser proporcionadas por su proveedor de servicios de red (o su proveedor de Internet), aunque existen muchos servidores de nombre gratuitos y accesibles públicamente disponibles para su uso, como por ejemplo los servidores de Level3 (Verizon), cuyas direcciones IP van del 4.2.2.1 al 4.2.2.6.

    [Sugerencia]

    La dirección IP, la máscara de red, la dirección de red, la dirección de broadcast (difusión) y la dirección de gateway (pasarela) se especifican normalmente por medio de las directivas apropiadas en el archivo /etc/network/interfaces. Las direcciones de los servidores de nombres se especifican normalmente por medio de las directivas nameserver en el archivo /etc/resolv.conf. Para más información, vea la página de manual para interfaces o resolv.conf, respectivamente, con las siguientes órdenes tecleadas en la línea de órdenes de una terminal:

    Acceda a la página del manual de interfaces con el siguiente comando:

    man interfaces
    

    Acceda a la página del manual de resolv.conf con el siguiente comando:

                    
                      man resolv.conf
                    
                  

Encaminamiento IP

El encaminamiento o enrutamiento de IP es un medio para especificar y descubrir rutas en una red TCP/IP en la que se pueden enviar datos de red. Utiliza un conjunto de tablas de encaminamiento para dirigir el envío de paquetes de datos de red desde su origen hasta su destino, a menudo a través de muchos nodos intermedios conocidos como enrutadores ("routers"). Hay dos formas básicas de encaminamiento de IP: Encaminamiento estático y Encaminamiento adaptativo, o dinámico.

El encaminamiento estático supone añadir manualmente rutas IP a la tabla de encaminamiento del sistema, lo cual se hace normalmente manipulando la tabla de encaminamiento con el comando route. El encaminamiento estático posee muchas ventajas sobre el encaminamiento dinámico: es más fácil de implementar en redes pequeñas, es más predecible (la tabla de encaminamiento siempre se calcula a priori, y por tanto la ruta es precisamente la misma cada vez que se usa), y supone menos sobrecarga sobre otros routers y enlaces de red al no usar un protocolo de encaminamiento dinámico. Sin embargo, el encaminamiento estático también presenta algunas desventajas. Por ejemplo, está limitado a redes pequeñas, y no escala bien. El encaminamiento estático además fracasa completamente a la hora de adaptarse a cortes en la red y a fallos en la ruta, debido a la naturaleza fija de esta última.

El enrutamiento adaptativo depende de redes grandes con muchas rutas IP posibles desde un origen a un destino y hace uso de protocolos de enrutamiento especiales, como el Router Information Protocol (RIP), que gestiona los ajustes automáticos de las tablas de encaminamiento que hacen posible el enrutamiento adaptativo. Éste tipo de enrutamiento tiene muchas ventajas en comparación con el enrutamiento estático, como por ejemplo una mejor escalabilidad y la capacidad de adaptarse a los fallos y pérdidas que ocurren en las rutas de red. Además las tablas de enrutamiento necesitan menos configuración, ya que los enrutadores recuerdan la existencia de otros enrutadores y de las rutas disponibles. Esta característica también elimina la posibilidad de cometer errores (humanos) en las tablas de enrutamiento. Sin embargo el enrutamiento dinámico no es perfecto, y tiene algunas desventajas, como su elevada complejidad y el gasto extra en comunicaciones de enrutadores, que no benefician inmediatamente a los usuarios finales y que consumen ancho de banda.

TCP y UDP

El TCP es un protocolo orientado a conexión, que ofrece corrección de errores y garantiza la entrega de los datos mediante el denominado control de flujo. El control de flujo determina cuándo se tiene que parar el flujo de una corriente de datos, y cuándo se deben reenviar los datos enviados previamente debido a problemas tales como colisiones, por ejemplo, asegurando así la entrega completa y precisa de los datos. El TCP se usa habitualmente en el intercambio de información importante, como transacciones de bases de datos.

El Protocolo de Datagramas de Usuario (User Datagram Protocol, UDP), por otro lado, es un protocolo sin conexión que raramente se usa en la transmisión ed datos importantes ya que carece de control de flujo o de cualquier otro método para garantizar la fiabilidad en la entrega de los datos. El UDP se usa habitualmente en aplicaciones de «streaming» de audio y vídeo, donde resulta considerablemente más rápido que el TCP por carecer de corrección de errores y control de flujo, y donde la pérdida de unos cuantos paquetes no suele resultar catastrófico.

ICMP

El Protocolo de Mensajería de Control de Internet (Internet Control Messaging Protocol, ICMP), es una extensión del Protocolo de Internet (Internet Protocol, IP) definida en el documento Request For Comments (RFC) #792, y que soporta paquetes de red que contienen mensajes de control, error e información. El ICMP se usa en aplicaciones de red como la utilidad ping, que comprueba la disponibilidad de un host o dispositivo en la red. Como ejemplos de mensajes error devueltos por el ICMP que resultan de utilidad en hosts de red y dispositivos como routers, tenemos Destination Unreachable (Destino Inalcanzable) y Time Exceeded (Tiempo Excedido).

Demonios

Los demonios (daemons) son aplicaciones especiales del sistema que normalmente se ejecutan continuamente en segundo plano esperando peticiones provenientes de otras aplicaciones que deseen usar las funciones que proporcionan. Muchos demonios están centrados en la red; es decir, muchos de los demonios que se ejecutan en segundo plano en un sistema Ubuntu pueden proporcionar funcionalidades relacionadas con la red. Algunos ejemplos de tales demonios de red incluyen el demonio de protocolo de transporte de hipertexto (httpd), que proporciona funcionalidades de servidor web; el demonio de intérprete seguro (sshd), que proporciona capacidades seguras de sesiones interactivas remotas y transferencia de archivos; y el demonio de protocolo de acceso a mensajes de Internet (imapd), que proporcona servicios de correo electrónico.