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.

  • Network Address The Network Address represents the bytes comprising the network portion of an IP address. For example, the host 12.128.1.2 in a Class A network would use 12.0.0.0 as the network address, where twelve (12) represents the first byte of the IP address, (the network part) and zeroes (0) in all of the remaining three bytes to represent the potential host values. A network host using the private IP address 192.168.1.100 would in turn use a Network Address of 192.168.1.0, which specifies the first three bytes of the Class C 192.168.1 network and a zero (0) for all the possible hosts on the network.

  • Broadcast Address The Broadcast Address is an IP address which allows network data to be sent simultaneously to all hosts on a given subnetwork rather than specifying a particular host. The standard general broadcast address for IP networks is 255.255.255.255, but this broadcast address cannot be used to send a broadcast message to every host on the Internet because routers block it. A more appropriate broadcast address is set to match a specific subnetwork. For example, on the private Class C IP network, 192.168.1.0, the broadcast address is 192.168.1.255. Broadcast messages are typically produced by network protocols such as the Address Resolution Protocol (ARP) and the 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

IP routing is a means of specifying and discovering paths in a TCP/IP network along which network data may be sent. Routing uses a set of routing tables to direct the forwarding of network data packets from their source to the destination, often via many intermediary network nodes known as routers. There are two primary forms of IP routing: Static Routing and Dynamic Routing.

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.

Dynamic routing depends on large networks with multiple possible IP routes from a source to a destination and makes use of special routing protocols, such as the Router Information Protocol (RIP), which handle the automatic adjustments in routing tables that make dynamic routing possible. Dynamic routing has several advantages over static routing, such as superior scalability and the ability to adapt to failures and outages along network routes. Additionally, there is less manual configuration of the routing tables, since routers learn from one another about their existence and available routes. This trait also eliminates the possibility of introducing mistakes in the routing tables via human error. Dynamic routing is not perfect, however, and presents disadvantages such as heightened complexity and additional network overhead from router communications, which does not immediately benefit the end users, but still consumes network bandwidth.

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.