7.1
TCP/IP. Una de las características
más importantes de Linux es su cualidad
como servidor de redes. La red en Linux (y el
propio Linux de forma interna) habla el mismo
idioma que Internet, lo que hace que el hecho
de dar servicios de Internet y acoplar una red
de área local no suponga prácticamente
ningún esfuerzo, ya que en el proceso no
se necesitan máquinas traductoras. Este
lenguaje se conoce de forma genérica como
TCP/IP (de las siglas en inglés de Protocolo
de Control de Transmisión/Protocolo de
Internet); en realidad son un conjunto de protocolos
agrupados para crear una comunicación más
fluida por la red, cada uno de ellos realizando
un trabajo muy específico.
El funcionamiento de TCP/IP se basa en el uso
de unas direcciones, denominadas direcciones IP,
para identificar de qué máquina
procede cada mensaje y a qué máquina
se dirigen. Estas direcciones tienen el formato:
###.###.###.###, donde cada grupo de tres dígitos
(denominado octeto ya que se puede representar
por un Byte) puede estar comprendido entre 0 y
255; de ella una parte se dedica a la dirección
de red y el resto identifica a la máquina
dentro de esa red. El número de cifras
de la dirección dedicada a cada uno de
estas componentes (red y máquina) varia
de un tipo de red a otra. En cierto modo se asemeja
a un número de teléfono, donde las
primeras cifras forman el prefijo de zona y el
resto el número de abonado dentro de la
zona. Para separar las dos partes se utiliza la máscara
de red, que no es más que un número
con la misma estructura de dirección IP
pero con un significado distinto. Así,
se distinguen varios tipos de direcciones que
definen otras tantas clases de redes, cada una
con una máscara de red distinta: A: 0.0.0.0 a 127.255.255.255 255.0.0.0
B: 128.0.0.0 a 191.255.255.255 255.255.0.0
C: 192.0.0.0 a 223.255.255.255 255.255255.0 Existen dos tipos de redes más (tipo D,
de 224.0.0.0 a 239.255.255.255, y tipo E, de 240.0.0.0
a 247.255.255.255, pero no se utilizan) En una red de tipo A el primer octeto numera
a la red, mientras que los otros tres numeran
las máquinas. En redes de tipo B sin embargo
se reservan dos octetos para la red y dos para
las máquinas. En las de tipo C son tres
los octetos para numerar la red y uno para la
máquina. Esto puede observarse por la máscara
propia de cada tipo de red. Hay una dirección especial compartida
por todas las máquinas que utilizan TCP/IP;
es la dirección 127.0.0.1 y se denomina
dirección de circuito cerrado o dirección
de lazo local; siempre es una referencia a la
propia máquina en la que se trabaja y es
comúnmente conocida como “localhost”. En toda red hay un par de direcciones “reservadas”,
que no pueden utilizarse para numerar a ninguna
máquina. Estas dos direcciones se conocen
con el nombre de “dirección de red”
(que siempre es la menor de toda la red) y “dirección
de difusión” o “dirección
de broadcast” (que siempre es la última).
La primera sirve para nombrar e identificar a
la red como un bloque, mientras que la dirección
de difusión se utiliza para enviar datos
de manera simultánea a todas las máquinas
de la red. De esta forma, podemos ver que existen 126 redes
distintas de tipo A cada una con algo más
de un millón y medio de máquinas
posibles. Existirán del mismo modo unas
16000 redes de tipo B, cada una con 65000 máquinas.
Por último, hay algo más de dos
millones de redes de tipo C en las que caben 254
máquinas en cada una. Para poder utilizar una IP es necesario solicitarla,
y sólo se conceden a organismos o empresas
capacitadas para ello (por ejemplo los proveedores
de internet); cada vez es más difícil
disponer de una ya que se está llegando
a una situación en la que casi no quedan
IP disponibles, debido a que en el actual sistema
de numeración se desaprovechan muchas direcciones
(si tenemos una red de tipo A y poseemos 700000
máquinas estamos desaprovechando todavía
16 millones de direcciones que nadie puede utilizar.
Esto se ha solucionado implantando un sistema
de numeración de 64 bits (en lugar de los
32 actuales); este sistema, a parte de ser virtualmente
inagotable (equivaldría a tener unos 200
aparatos por metro cuadrado cubriendo toda la
superficie de la tierra) es compatible con el
actual. Ésta y otras mejoras se introducen
en la versión 6 del protocolo IP (conocida
como IPv6, la actual es IPv4), que tímidamente
se está empezando a implantar en algunos
sistemas (Linux es totalmente compatible con él
desde hace tiempo). Por otro lado, la estructura de la comunicación
entre dos máquinas responde a un modelo
de capas, una sobre otra, de manera que el conjunto
de tareas se divide en partes que son ejecutadas
en una determinada capa. Cada capa se comunica
con una similar en el otro extremo de la comunicación
intercambiando una serie de datos, que son utilizados
por la capa superior; cada capa además
posee una información de control que es
entendida únicamente por su capa pareja
y que es la que permite que se produzca el intercambio
de datos. En TCP/IP existen cuatro capas diferenciadas;
la primera es la capa de red local, que es la
encargada de llevar la información de una
máquina a otra, resolviendo los problemas
que puedan ocurrir en la transmisión (ya
sea por cable, inalámbrica, óptica,
...). Los elementos que residen en esta capa son
los controladores de dispositivos de red, como
la tarjeta Ethernet o el módem. Sobre ella se encuentra la capa internet o “entre
redes”, que es dónde reside IP. Es
la responsable de decirle a los datos dónde
tienen que ir para llegar a su destino, para lo
que utiliza las direcciones IP (lo veremos un
poco más adelante); el envío de
datos se realiza a una máquina accesible
directamente de la red. La capa de transporte es la primera que conoce
la trasmisión extremo a extremo, no a máquinas
próximas como hace la capa de red. Aquí
es donde trabaja TCP, que se encarga de fragmentar
los paquetes en trozos más pequeños
que son enviados junto con información
para su ensambladores. TCP se ocupa también
de servicios que requieren una conexión
ininterrumpida con comprobaciones de los errores
y recuperación ante ellos. Para servicios
que no necesitan controlar si hubo o no un error
o que no necesitan de una conexión establecida
permanentemente con el receptor se utiliza el
protocolo UDP (Protocolo de Datagrama de Usuario),
más rápido que TCP en ambientes
fiables (como una red de área local, por
ejemplo). Por último tenemos la capa de Aplicación,
que es donde residen los diferentes programas
que utilizan Internet; cada una de estas aplicaciones
ofrece unos servicios al usuario (o a otros programas),
para lo que cual necesitan utilizar uno de los
protocolos de la capa de transporte, ya sea TCP
o UDP. Por ejemplo los servicios FTP, POP3 y SMTP
utilizan TCP, DNS y NFS usan UDP y HTTP utiliza
ambos. Para poder conocer a qué aplicación
se destinan los datos se utiliza un número
de puerto, de manera que la pareja dirección
IP/puerto determina de forma única la aplicación
a la que se destinarán los datos. No te preocupes si no conoces el significado
de todas estas siglas, las veremos en detalle
más adelante; de todas formas existe una
lista exhaustiva de los servicios existentes y
los puertos y protocolos que utilizan en el archivo
/etc/services. Lo que debes tener muy claro es
que TCP y UDP poseen puertos independientes, es
decir, cada uno tiene su propia numeración.
|