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 ordenadores y redes. TCP/IP es el impulsor de Internet, y es el más popular juego de protocolos de red de la Tierra.
Los dos protocolos componentes del TCP/IP se encargan de aspectos diferentes en las redes de ordenadores. 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.
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 componen la porción de red de una dirección IP. Por ejemplo, el host 12.128.1.2 en una red de Clase A debe usar 12.0.0.0 como dirección de red, en el que el doce (12) representa el primer byte de la dirección IP, (la parte de red) y los ceros (0) en los restantes tres bytes representan los posibles valores de host. Los hosts de una red que use direcciones IP privadas no enrutables tan comunes como 192.168.1.100 deberán usar la dirección de red 192.168.1.0, que especifica los tres primeros bytes de la red de clase C 192.168.1 y el cero (0) para todos los posibles hosts de la red.
Dirección de difusión (broadcast) La dirección de difusión es una dirección IP que permite enviar datos a todos los hosts de una misma subred simultáneamente, en lugar de especificar uno por uno cada host de la red. La dirección de difusión general estándar para las redes IP es 255.255.255.255, pero esta dirección de difusión no se puede usar para enviar un mensaje de difusión a todos los hosts de Internet porque los routers lo bloquean. Se puede establecer una dirección de difusión más apropiada cuadrándola con una subred específica. Por ejemplo, en la populare rede IP privada de Clase C, 192.168.1.0, la dirección de difusión debería configurarse como 192.168.1.255. Los mensajes de difusión son producidos normalmente por los protocolos de red como el Protocolo de Resolución de Direcciones (Address Resolution Protocol, ARP), y el Protocolo de Información de Encaminamiento (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.
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
El encaminamiento IP es una manera de especificar y descubrir caminos en una red TCP/IP por los cuales se pueden enviar datos dentro de la red. El encaminamiento usa un conjunto de tablas de enrutamiento (routing tables) para dirigir el envío de los paquetes de datos desde su origen hasta su destino, a menudo usando muchos nodos intermedios conocidos como encaminadores o «routers». El encaminamiento IP es la forma principal de descubrir caminos dentro de Internet. Hay dos formas básicas de encaminamiento IP: encaminamiento estático y encaminamiento dinámico.
El encaminamiento estático supone añadir manualmente las rutas IP en la tabla de encaminamiento del sistema, y esto se hace normalmente manipulando la tabla de encaminamiento con la orden route. El encaminamiento estático tiene muchas ventajas sobre el encaminamiento dinámico, como la simplicidad de implementación sobre redes pequeñas, la predecibilidad (la tabla de encaminamiento siempre se calcula por adelantado, y por tanto la ruta siempre es la misma cada vez que se usa), y la baja sobrecarga en otros routers y enlaces de red por la inexistencia de un protocolo de encaminamiento dinámico. Sin embargo, el encaminamiento estático también presenta algunos inconvenientes. Por ejemplo, está limitado a redes pequeñas y no escala adecuadamente. El encaminamiento estático también fracasa completamente al intentar adaptarse a pérdidas de la red y a fallos a lo largo de la ruta debido a la naturaleza inmutable de la misma.
El encaminamiento dinámico depende de redes grandes con muchas rutas IP posibles desde un origen hacia un destino, y hace uso de protocolos especiales de encaminamiento, como el Protocolo de Información del Router (Router Information Protocol, RIP), que gestina los ajustes automáticos en las tablas de encaminamiento que hacen posible el encaminamiento dinámico. El encaminamiento dinámico tiene varias ventajas sobre el encaminamiento estático, como su superior escalabilidad y la capacidad de adaptarse a los fallos y las pérdidas producidos a lo largo de las rutas de la red. Además, tiene una configuración menos manual de las tablas de encaminamiento, puesto que los routers aprenden unos de otros sobre la existencia y la disponibilidad de las rutas. Esta característica también elimina la posibilidad de introducir fallos en las tablas de encaminamiento provocadas por un error humano. El encaminamiento dinámico no es perfecto, sin embargo, y presenta inconvenientes como su mayor complejidad y la sobrecarga adicional de la red debida a las comunicaciones entre los routers, que no benefician inmediatamente a los usuarios finales, y que además consume ancho de banda de la red.
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.
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).
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.