<!doctype linuxdoc system>

<!-- Este es el COMO de los conceptos de redes para Linux. -->

<article>

<!-- Title information -->

<title>Linux Networking-concepts HOWTO
<author>Rusty Russell&nl;
Ricardo Javier Cárdenes Medina <tt><htmlurl name="a1402@dis.ulpgc.es"
url="mailto:a1402@dis.ulpgc.es"></tt>&nl;
<date>v1.0.1 Lunes 1 de Mayo 16:19:12 CST 2000, traducción del 27 de Junio
de 2000
<abstract>
Este documento describe qué es una red (por ejemplo Internet), y los
fundamentos de su funcionamiento.
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>Introducción
<p>
Bienvenido, amable lector.

Hemos escrito varios documentos «COMO» sobre redes en el pasado, y se nos
ocurrió que hay montón de jerga en cada uno. Teníamos tres opciones: las
otras dos eran o bien ignorar el problema, o bien explicar los términos en
cada documento. Ninguna de las dos era atractiva.

El matiz importante del software Libre es que usted ha de tener la libertad
para explorar y trastear con los sistemas de software que usa. Pensamos que
es una noble meta permitir a la gente experimentar esta libertad; no sólo la
gente siente que la consecución del objetivo le da alas (como reconstruir el
motor de un coche), sino que la naturaleza de la moderna Internet y del
software Libre le permiten compartir la experiencia con millones de
personas.

Pero tiene que empezar en algún lugar, así que aquí estamos.

<sect>¿Qué es una «red de ordenadores»?<label
id="definition-computer-network"> <p> <label id="definition-node"> Una red
de ordenadores es un conjunto de material preparado para que los nodos
puedan comunicarse uno con otro (con «nodos» me estoy refiriendo a
ordenadores, impresoras, máquinas de refrescos de cola y cualquier otra cosa
que se le ocurra). No es realmente importante <bf/cómo/ estén conectados:
pueden usar cables de fibra óptica o palomas mensajeras. Obviamente, algunas
elecciones son mejores que otras (especialmente si tiene gato).

<label id="definition-sub-network">
Normalmente, si se va a limitar a conectar dos ordenadores, no se le llama
red; realmente, necesitará tres o más para tener una red. Pasa como con la
palabra «grupo»: dos personas son sólo una pareja, pero tres ya pueden ser
«grupo». Además, las redes suelen estar conectadas unas con otras, para
constituirse en redes más grandes. Cada pequeña red (normalmente llamada
«subred») puede ser parte de una red más grande.

<label id="definition-network-link">
La verdadera conexión entre dos ordenadores se llama a menudo «enlace de
red» (network link). Si hay un cable que va de la parte posterior de su
ordenador hasta las otras máquinas, ese es su enlace de red.

Hay cuatro cuestiones que generalmente tenemos en cuenta al hablar de
redes de ordenadores:

<descrip>
<tag>Tamaño</tag>
        <label id="definition-LAN">
        Si va a conectar los cuatro ordenadores de casa, tiene lo que
	llamamos LAN (Local Area Network - Red de Area Local). Si todo
	está a una distancia razonable que se pueda cubrir caminando,
	se le suele llamar LAN, da igual cuántas máquinas estén
	conectadas, y de qué manera esté hecha la red.

        <label id="definition-WAN">
	El otro extremo del espectro es una WAN (Wide Area Network - Red
	de Area Amplia). Si tiene un ordenador en Lahore, Pakistán, otro
	en Birmingham, Reino Unido y otro en Santiago de Chile, e intenta
	conectarlos, tendrá una WAN.

<tag>Topología: La Forma</tag>

        <label id="definition-topology">
	Dibuje un mapa de la red: las líneas son los
	<ref id="definition-network-link" name="enlaces de red">, y cada
	nodo es un punto. Quizá cada línea lleve a un nodo central, como
	una gran estrella, lo que quiere decir que todo el mundo se
	comunica a través de un punto (una <label
	id="definition-star-topology"> «topología en estrella»):
<tscreen><verb>
    o   o   o
     \_ | _/
       \|/
  o-----o-----o
      _/|\_
     /  |  \
    o   o   o
</verb></tscreen>

        Quizá todo el mundo hable en una única línea, como en este caso:
<tscreen><verb>
    o------o------o-------o--------o
    |                              |
    |                              |
    |                              o
    |                              |
    o                              |
                                   o
</verb></tscreen>

        O puede que tenga tres subredes conectadas a través de un
	nodo:
<tscreen><verb>
                o
    o           |  o--o--o
    |           |  |
    o--o--o--o--o  o
           \       |
            o------o
           /       |
    o--o--o--o--o  o
    |           |  |
    o           |  o--o
                o
</verb></tscreen>

        Verá muchas topologías como estas en la vida real, y mucho más
	complejas.

<tag>Aspecto físico: De qué está hecha</tag>

        <label id="definition-sneakernet"> La segunda cuestión a tener en
	cuenta es con qué ha construido la red. La más barata es la
	«sneakernet» (red a zapato), donde gente mal vestida lleva
	disquetes de un ordenador a otro. La sneakernet es casi siempre
	una <ref id="definition-LAN" name="LAN">. Los disquetes cuestan
	menos de 1 euro, y se puede comprar un sólido par de deportivos
        por unos 20 euros.

	<label id="definition-modem"> El dispositivo más común usado en
	casa para conectar a redes mayores se llama «módem»
	(MODulador/DEModulador), que convierte una línea de teléfono
	normal en un enlace de red. Transforma la información del
	ordenador en sonidos, y escucha los sonidos que vienen del otro
	extremo para convertirlos de nuevo en información para el ordenador.
	Como puede imaginar, esto no es muy eficiente, y las líneas de
	teléfono no fueron diseñadas para este uso; pero es popular porque
	las líneas de teléfono son comunes y baratas: se venden módemes por
	menos de 50 euros y una línea de teléfono suele costar unos
        doscientos euros al año.

	<label id="definition-ethernet">
	<label id="definition-UTP">
	<label id="definition-10base2">
	<label id="definition-10baseT">
	<label id="definition-100baseT">
	<label id="definition-coax">
	<label id="definition-gigabit-ethernet">
	<label id="definition-terminator">
	<label id="definition-hub">
	La manera más común de conectar máquinas en una LAN es usar
	Ethernet. Ethernet se presenta en las siguientes modalidades
	principales (listadas de más antigua a la más reciente):
	Thinwire/Coax/10base2, UTP (Unshielded Twisted Pair/10baseT y
	UTP/100baseT. También se está empezando a difundir Gigabit
	ethernet (el nombre 1000baseT comenzaba a parecer estúpido). El cable
	10base2 suele ser coaxial negro, con enlaces en forma de T para
	conectarlos a los objetos: todos están conectados en una gran
	fila, con «terminadores» especiales en ambos extremos. UTP suele
	ser cable azul<footnote>(N. del T.: en España lo suelo ver blanco
	o gris)</footnote> con conectores transparentes al estilo de los
	teléfonos que se enchufan: cada cable conecta un nodo a un «hub»
	(un concentrador) central. El cable costará menos de dos euros el
	metro, y las tarjetas 10baseT/10base2 (muchas tienen ambos
	conectores) están sobre los 30 euros. Las tarjetas 100baseT, que
	también pueden trabajar con 10baseT, son diez veces más rápidas, y
	andan por menos de 80 euros.

	<label id="definition-fiber">En el otro extremo tenemos la Fibra; un
	delgado filamento de cristal, encerrado en una capa protectora que
	se puede tender entre continentes. La fibra cuesta miles (de
	euros).

	<label id="definition-network-interface">Generalmente llamamos a cada
	conexión a un nodo «interfaz de red», o «interfaz» para abreviar.
	Linux les da nombres como «eth0» para la primera interfaz
	ethernet, y «fddi0» para la primera interfaz de fibra. La orden
	<tt>/sbin/ifconfig</tt> las enumera.

<tag>Protocolo: qué se habla</tag>

	<label id="definition-protocol">
	El último detalle por tener en cuenta es el lenguaje que van a
	hablar los ordenadores. Cuando dos <ref id="definition-modem"
	name="módemes"> se comunican por una línea de teléfono, se
	tienen que poner de acuerdo en el significado de cada sonido,
	porque de lo contrario no funcionará. Esta convención se denomina
	«protocolo». Según se descubren nuevas formas de codificar
	lo que dicen las computadores en sonidos más pequeños, se inventan
	nuevos protocolos, y la mayoría de los módemes probarán con varios
	protocolos hasta que encuentren uno que el otro extremo entienda.

	Otro ejemplo es la red <ref id="definition-100baseT"
	name="100baseT"> que mencionamos antes: usa los mismos <ref
	id="definition-network-link" name="enlaces de red"> físicos (<ref
	id="definition-UTP" name="UTP">) que <ref id="definition-10baseT"
	name="10baseT">, pero habla diez veces más rápido.

	<label id="definition-link-level-protocol">
	<label id="definition-hop">
	Estos dos protocolos son lo que denominamos protocolos de «nivel de
	enlace»; la manera en que se controla la información entre dos
	enlaces individuales de red, o «un salto». La palabra «protocolo»
	también se refiere a otras convenciones, como veremos más
	adelante.
</descrip>

<sect>¿Qué es la «Internet»?<label id="definition-internet">
<p>
Internet es una <ref id="definition-WAN" name="WAN"> que abarca todo el
planeta: es una de las más grandes redes de ordenadores existentes. La
expresión «internetworking» se refiere a conectar redes separadas para
construir una más grande, de manera que «La Internet» es la conexión de un
gran conjunto de subredes.

De manera que examinemos ahora la lista anterior y preguntémonos:
¿cuál es el tamaño de Internet, sus detalles físicos y protocolos?

El tamaño ya lo hemos establecido: es mundial.

Los detalles físicos, sin embargo, son variados: cada pequeña subred se
conecta de forma diferente, con un aspecto y naturaleza física distinta.
Los intentos de hacer un mapa útil de Internet han acabado de forma
general en un abyecto fracaso.

Los protocolos que se hablan entre cada enlace también son diferentes a
menudo: todos los <ref id="definition-link-level-protocol"
name="protocolos de nivel de enlace"> que nombramos antes, y muchos más.

<sect1>¿Cómo funciona la Internet?
<p>
Entonces se nos plantea la pregunta: ¿cómo puede hablar cada nodo de
Internet con otros, si todos utilizan diferentes protocolos de nivel de
enlace?

<label id="definition-network-protocol">
La respuesta es muy sencilla: necesitamos otro protocolo que controle cómo
fluyen las cosas a través de la red. El protocolo de nivel de enlace
describe cómo llegar de un nodo a otro si están conectados de forma
directa: el «protocolo de red» nos dice cómo llegar de un punto de la red
a otro, yendo a través de otros enlaces si fuera necesario.

<label id="definition-internet-protocol">
<label id="definition-IP">
<label id="definition-IPv4">
<label id="definition-IPv6">
Para la Internet, el protocolo de red es el <em/Internet Protocol/
(versión 4), o «IP». No es el único que hay (tenemos otros como el
Appletalk de Apple, IPX de Novell, DECNet de Digital y el NetBEUI de
Microsoft) pero es el más ampliamente adoptado. Hay una nueva versión de
IP denominada IPv6, pero aún no es tan común.

<label id="definition-router">
Para enviar un mensaje de una parte a otra del planeta, su ordenador escribe
un fragmento de <em/Internet Protocol/, lo envía por el módem, que usa algún
protocolo de nivel de enlace de módems para enviarlo al otro módem al que
está llamando, que posiblemente esté enchufado a un servidor terminal
(básicamente una gran caja de módems), que lo envía a otro nodo dentro de
la red del ISP (Internet Service Provider - Proveedor de Servicios de
Internet), que lo envía normalmente a otro nodo mayor, que lo manda al
siguiente, y así sucesivamente. Un nodo que conecte dos o más redes se
llama «router»<footnote>N. del T.: mantenemos la denominación «router», ya
que es la más común entre los propios hispanohablantes. También hemos
escuchado «enrutador» o «encaminador»</footnote>: tendrá una <ref
id="definition-network-interface" name="interfaz"> para cada red.

<label id="definition-protocol-stack">
Llamamos a este conjunto de protocolos una «pila de protocolos», que a veces 
se representa de esta manera:

<tscreen><verb>
  [ Aplicación: Controla Porno ]        [ Capa de aplicación: Sirve Porno ]
                |                                       ^
                v                                       |
[ TCP: Controla la Retransmisión ]      [ TCP: Controla la Retransmisión ]
                |                                       ^
                v                                       |
[ IP: Controla el Encaminamiento ]      [ IP: Controla el Encaminamiento ]
                |                                       ^
                v                                       |
[ Enlace: Controla un solo Salto ]      [ Enlace: Controla un solo Salto ]
                |                                       |
                +---------------------------------------+
</verb></tscreen>

<label id="definition-transmission-control-protocol">
<label id="definition-TCP">
De manera que en el diagrama vemos un Netscape (la Aplicación de la
izquiereda) obteniendo una página web de un servidor web (la Aplicación de
la derecha). Para hacerlo utiliza el «Transmission Control Protocol» o
«TCP»: alrededor del 90% del tráfico de la Internet hoy día es TCP, y se
emplea para Web y correo electrónico.

De manera que el Netscape hace una consulta mediante una conexión TCP al
servidor web remoto: esto lo controla la capa TCP, que se la pasa a la
capa IP, que se hace cargo de la dirección que tiene que seguir, y la
pasa a la capa de enlace apropiada, que la transmite al otro extremo del
enlace.

En el otro extremo, la capa de enlace la pasa a la capa IP, que comprueba
que vaya destinado a esa máquina (si no, puede enviarla a otra capa de
enlace diferente para que pase al siguiente nodo), se la entrega a la capa
TCP que, por último, se la manda al servidor.

De manera que tenemos lo siguiente:

<enum>
<item>La aplicación (Netscape, o el servidor web en el otro extremo)
      decide con quién quiere hablar, (y qué le quiere enviar).

<label id="definition-packets">
<item>La capa TCP envía paquetes especiales para iniciar la conversación
      con el otro extremo, y entonces empaqueta los datos en «paquetes»
      TCP: un paquete es sólo un término para describir un grupo de datos
      que pasan a través de la red. La capa TCP delega este paquete en la
      <label id="definition-retransmission">
      capa IP: estará mandándoselo a la capa IP hasta que la capa TCP del
      otro extremo responda diciendo que lo ha recibido. Esto se llama
      «retransmisión», e implica gran cantidad de reglas complejas que
      deciden cuándo retransmitir, cuánto esperar, etc. También le da a
      cada paquete un número, lo que significa que el otro extremo podrá
      ponerlos en el orden correcto.

<label id="definition-routing">
<item>La capa IP comprueba el destino del paquete, y averigua el siguiente
      nodo al que mandárselo. Este sencillo acto se llama «encaminamiento»
      (<em/routing/), y va desde lo realmente sencillo (si sólo tiene un
      módem, y no hay otra interfaz de red, todos los paquetes saldrán por
      ahí) a lo extremadamente complejo (si tiene 15 grandes redes
      conectadas directamente con usted).
</enum>

<sect>Cuestión de IP
<p>
<label id="definition-route">
<label id="definition-ip-address">
De manera que el papel de la capa IP es averiguar cómo «encaminar»
paquetes a su destino final. Para hacerlo posible, cada interfaz en la red
necesita una «dirección IP». Una dirección IP consiste en cuatro números
separados por puntos, tal como «167.216.245.249». Cada número estará entre
cero y 255.

Las interfaces de la misma red tienden a tener direcciones IP vecinas.
Por ejemplo «167.216.245.250» estará cerca de la máquina con la dirección
IP «167.216.245.249». Recuerde también que un <em/router/ es un nodo con
interfaces en una o más redes, de manera que el <em/router/ tendrá una
dirección IP por cada interfaz.

<label id="definition-default-route">
Por tanto la capa IP del Núcleo de Linux tiene una tabla con diferentes
«rutas», que describe cómo llegar a varios grupos de direcciones IP. La
más sencilla de ellas se llama «ruta por defecto»: si la capa IP no sabe
qué hacer, es ahí a donde envía los paquetes. Puede ver una lista de las
rutas usando <tt>/sbin/route</tt>.

Las rutas pueden indicar tanto un enlace, como un nodo particular que está
conectado a otra red. Por ejemplo, cuando llamamos a un ISP, la ruta por
defecto indicará el enlace del módem, porque por ahí se llega al mundo
entero.

<tscreen><verb>
  Módem de             Módem  ~~~~~~ 
   Rusty             del ISP {      }
       o------------------o { La Red }
                             {      }
                              ~~~~~~  
</verb></tscreen>

Pero si tenemos una máquina en nuestra red que conecta con el mundo
exterior, es un poco más complejo. En el siguiente diagrama, mi máquina
puede comunicarse directamente con las de Pedro y Pablo, y con el
cortafuegos («firewall»), pero necesita saber que los paquetes dirigidos
al resto del mundo han de pasar por el cortafuegos, que los reenviará.
Esto significa que hay dos rutas: una dice «si está en mi red,
sencillamente suéltalo ahí», y luego la ruta por defecto que dice «en
cualquier otro caso, envíalo al cortafuegos».

<tscreen><verb>
                         o  La estación de trabajo
                         |    de Pedro          ~~~~~~  
  La estación de trabajo |                     {      } 
   de Rusty     o--------+-----------------o--{ La Red }
                         |         cortafuegos {      } 
                         |                      ~~~~~~
                         o  La estación de trabajo
                              de Pablo
</verb></tscreen>

<sect1>Grupos de direcciones IP: Máscaras de Red
<p>
<label id="definition-network-address">
Queda un último detalle: existe una notación estándar para grupos de
direcciones IP, a veces llamada «dirección de red». Igual que un número de
teléfono puede ser separado en prefijo de área y el resto, podemos separar
una dirección IP en el prefijo de red y el resto.

Antes se hablaba de «la red 1.2.3», refiriéndose a todas las 256
direcciones de la 1.2.3.0 a la 1.2.3.255. O si no bastaba con esa red,
se hacía referencia a «la red 1.2», que implica todas las direcciones desde la
1.2.0.0 a la 1.2.255.255.

<label id="definition-network-mask">
<label id="definition-netmask">
Normalmente no escribimos «1.2.0.0 - 1.2.255.255». En su lugar, lo
abreviamos como «1.2.0.0/16». Esta extraña notación «/16» (se llama
«netmask» - máscara de red) precisa de alguna explicación.

Cada número entre los puntos en una dirección IP se compone de 8 dígitos
binarios (00000000 a11111111): los escribimos en la forma decimal para
hacerlos más legibles para el ser humano. El «/16» significa que los primeros
16 dígitos binarios constituyen la dirección d red, o en otras palabras,
«1.2.» es la parte de la red (recuerde: cada dígito representa 8
binarios). Esto significa que cualquier dirección IP que comience por
«1.2» es parte de la red: «1.2.3.4» y «1.2.3.50» lo son, y «1.3.1.1» no.

Para hacer la vida más fácil, solemos usar redes que acaban en «/8», «/16»
y «/24». Por ejemplo, «10.0.0.0/8» es una gran red que contiene las
direcciones desde la 10.0.0.0 a la 10.255.255.255 (¡alrededor de 24
millones de direcciones!). 10.0.0.0/16 es más pequeña, y sólo contiene
las direcciones IP de la 10.0.0.0 a la 10.0.255.255. 10.0.0.0/24 es aún
más pequeña, y sólo contiene las direcciones 10.0.0.0 a 10.0.0.255.

Para termina de hacerlo confuso, hay otras maneras de escribir máscaras
de red. Podemos escribirlas como direcciones IP:

<tscreen><verb>
10.0.0.0/255.0.0.0
</verb></tscreen>

<label id="definition-broadcast-address">
Para concluir, cabe señalar que la IP más alta de cualquier
red está reservada para la «dirección de multidifusión», que se puede usar
para enviar un mensaje a todas las máquinas de la red a la vez.

<p>He aquí una tabla de máscaras de red:
<tscreen><verb>
Forma   Forma                   Máximo número   Comentarios
  Corta   Completa                Máquinas

/8      /255.0.0.0              16,777,215      Se suele llamar «clase A»
/16     /255.255.0.0            65,535          Se suele llamar «clase B»
/17     /255.255.128.0          32,767
/18     /255.255.192.0          16,383
/19     /255.255.224.0          8,191
/20     /255.255.240.0          4,095
/21     /255.255.248.0          2,047
/22     /255.255.252.0          1,023
/23     /255.255.254.0          511
/24     /255.255.255.0          255             Se suele llamar «clase C»
/25     /255.255.255.128        127
/26     /255.255.255.192        63
/27     /255.255.255.224        31
/28     /255.255.255.240        15
/29     /255.255.255.248        7
/30     /255.255.255.252        3
</verb></tscreen>

<sect>Nombres de máquinas y direcciones IP
<p>
De manera que cada interfaz en cada nodo tiene una dirección IP.
Rápidamente los humanos se dieron cuenta que era bastante difícil tener
que recordar números, de manera que decidieron (igual que con los números
de teléfono) tener un directorio de nombres. Pero como de todas maneras
estamos utilizando ordenadores, es mejor que él mismo haga las consultas
por nosotros de forma automática.

<label id="definition-DNS">
De manera que tenemos el Domain Name System (DNS - Sistema de Nombres de
Dominio). Hay nodos que tienen direcciones IP bien conocidas a las que
los programas pueden preguntar nombres, para obtener direcciones IP a
cambio. Casi todos los programas que use podrán hacerlo, y por ello
usted puede poner «www.linuxcare.com» en el Netscape, en lugar de
«167.216.245.249». 

<label id="definition-name-server">
Por supuesto, necesita al menos la dirección IP de uno de estos
«servidores de nombres»: normalmente están almacenados en el fichero
<tt>/etc/resolv.conf</tt>

<label id="definition-UDP">
<label id="definition-user-datagram-protocol">
Como las consultas y respuestas DNS son bastante pequeñas (un paquete cada
una), no se suele usar el protocolo TCP: proporciona retransmisión
automática, ordenación, y fiabilidad en general, pero al coste de enviar
paquetes adicionales por la red. En su lugar usaremos el más sencillo
«User Datagram Protocol», que no ofrece ninguna de las maravillosas
características de TCP que no necesitamos.

<sect>Diferentes servicios: Correo electrónico, Web, FTP, Servicio de
Nombres de Internet
<p>
En el ejemplo anterior, mostramos a Netscape enviando una consulta TCP a
un servidor web que se ejecutaba en otro nodo. Pero imagine que el nodo del
servidor web también está ejecutando un servidor de correo electrónico,
otro de FTP y un servidor de nombres: ¿cómo se sabe a qué servidor va
dirigida cada conexión TCP?

<label id="definition-port">
<label id="definition-destination-port">
Por esa razón, TCP y UDP tienen un concepto de «puertos». Cada paquete
tiene espacio para un «puerto de destino», que indica para qué servicio es
el paquete. Por ejemplo, el puerto 25 de TCP es el servidor de correo, y el
puerto 80 TCP es el servidor web (aunque a veces se encuentren servidores web
en puertos diferentes). Puede encontrar una lista de puertos en
<tt>/etc/services</tt>.

Además, si dos ventanas de Netscape acceden a la vez a diferentes partes
del servidor web, ¿cómo sabe la máquina con el Linux ejecutando Netscape
repartir correctamente los paquetes TCP con las respuestas del servidor
web?

<label id="definition-source-port">
Aquí es donde entra en acción el «puerto de origen»: cada nueva conexión TCP
toma un puerto<footnote>N. del T.: puerto de origen</footnote> diferente,
de manera que todo el mundo puede diferenciarlas, incluso si van dirigidas a
los mismos IP y puerto de destino. Normalmente, el primer puerto disponible
será el 1024, e irá incrementándose con el tiempo y el uso. 

<sect>Interfaces de llamada: PPP
<p>
<label id="definition-PPP">
<label id="definition-point-to-point-protocol">
<label id="definition-ppp-daemon">
Cuando llama con su módem a un ISP (Proveedor de Servicios de Internet), y
conecta con el de ellos, el núcleo no sabe cómo enviar paquetes IP
mediante él. Hay un protocolo llamado «Point-to-Point Protocol» (Protocolo
Punto a Punto) o «PPP», que se usa para negociar con el otro extremo antes
de permitir que pase ningún paquete. El ISP lo utiliza para identificar
quén llama: en su máquina Linux hay un programa llamado «demonio PPP» que
controla su extremo de la negociación.

<label id="definition-dynamic-ip-address">
<label id="definition-static-ip-address">
Como hay tantos usuarios «de llamada» en el mundo, normalmente no tienen
su propia dirección IP: la mayoría de los ISP le asignarán de forma temporal
una de las que ellos poseen, mientras está usted conectado (el demonio PPP
la negociará). Generalmente se le denomina «dirección IP dinámica», en
contraposición a «dirección IP estática», que es el caso normal cuando
Usted tiene una conexión permanente. Normalmente van asignadas a los
módemes de su ISP: la siguiente vez que marque, posiblemente acceda por un
módem diferente de la reserva de módemes, y por lo tanto obtendrá una IP
diferente.

<sect>Qué aspecto tienen los paquetes
<p>
<label id="definition-packet-sniffer">
Para el excepcionalmente curioso (y el curiosamente excepcional), aquí
tenemos una descripción del aspecto real de un paquete. Hay varias
herramientas que miran qué paquetes están entrando y saliendo de su
máquina Linux: el más común es «tcpdump» (que comprende más que TCP
actualmente). Estos programas se llaman «husmeadores de paquetes» (packet
sniffers).

<label id="definition-packet-header">
<label id="definition-packet-body">
El principio de cada paquete dice a dónde va, de dónde viene, el tipo de
paquete, y otros detalles administrativos. Esta parte se denomina «cabecera
del paquete». El resto del paquete contiene los datos por transmitir
propiamente dichos, y normalmente se denomina «cuerpo del paquete».

<label id="definition-IP-header">
Por lo tanto, cualquier paquete IP comienza con la «cabecera IP»: de al
menos 20 bytes de largo. Tiene un aspecto parecido al siguiente: (este
diagrama ha sido sustraído  sin ningún remordimiento de conciencia del RFC
790): 

<tscreen><verb>
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Versión|  IHL  |Tipo de Servic.|          Tamaño Total         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identificación        |Flags|  Desplaz. del Fragmento |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Tiempo de Vida |   Protocolo   |    Checksum de la cabecera    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Dirección de Origen                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Dirección de Destino                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</verb></tscreen>

Los campos importantes son el Protocolo, que indica si es un paquete TCP
(número 6), UDP (número 17) u otra cosa, la Dirección IP de Origen y la
Dirección IP de Destino.

<label id="definition-TCP-header">
Ahora, si el campo de protocolo dice que es un paquete TCP, entonces
a esta cabecera IP le sigue inmediatamente una cabecera TCP: la cabecera
TCP también tiene al menos 20 bytes de longitud:

<tscreen><verb>
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Puerto de Origen       |       Puerto de Destino       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Número de Secuencia                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Número de Confirmación                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Deplz. |           |U|A|P|R|S|F|                               |
   |de los | Reservado |R|C|S|S|Y|I|            Ventana            |
   | Datos |           |G|K|H|T|N|N|                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |      Puntero de Urgencia      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</verb></tscreen>

Los campos más importantes son el puerto de origen y el de destino, que
dicen a qué servicio está destinado el paquete (o de cual viene, en el
caso de que sea un paquete de respuesta). Los números de secuencia y
confirmación (acknowledgement) se utilizan para mantener el orden de los
paquetes, y decirle al otro extremos cuántos paquetes se han recibido. Los
indicadores (flags) ACK, SYN, RST y FIN (escritos de mayor a menor) son
simples bits que se utilizan en la negociación de apertura (SYN) y cierra
(RST o FIN) de las conexiones.

Siguiendo a esta cabecera viene el verdadero mensaje que la aplicación
envió (el cuerpo del paquete). Un paquete normal puede tener hasta 1500
bytes: esto significa que el mayor espacio que pueden ocupar los datos es
de 1460 bytes (20 bytes para la cabecera IP y 20 para la cabecera TCP):
alrededor del 97%.

<sect>Sumario
<p>
De manera que la Internet moderna utiliza paquetes IP para comunicarse, y
la mayoría de estos paquetes usan internamente TCP. Hay nodos especiales
llamados «routers» que conectan todas las pequeñas redes juntas en redes
mayores, y dejan pasar estos paquetes hacia su destino. La mayoría de las
máquinas normales están conectadas a una red (esto es, sólo tienen una
interfaz), y por lo tanto no son <em/routers/.

Cada interfaz tiene una única dirección IP, como «1.2.3.4»: las interfaces
de la misma red tendrán direcciones IP relacionades, con los mismos
primeros números, de la misma manera que las conexiones telefónicas de la
misma zona tienen el mismo prefijo. Estas direcciones de red se parecen
a las direcciones IP, con una «/» para dilucidar qué parte de ellas es el
prefijo, por ejemplo «1.2.0.0/16» indica que los primeros dos dígitos son
la dirección de red: cada dígito representa 8 bits.

A las máquinas se les asignan nombres usando el Servicio de Nombres de
Dominio: los programas les piden a los servidores de nombre que les informen
de las direcciones IP, dado un nombre como «www.linuxcare.com». Entonces se
puede usar esa dirección IP para comunicarse con ese nodo.

Rusty se le da realmente mal escribir documentación, sobre todo para
novatos.

¡Que lo disfrute!

Rusty.

<sect>Agradecimientos
<p>
Gracias a Alison, por revisar exhaustivamente el terrible borrador original,
y decirme lo malo que era, de la manera más bonita posible.

<sect>Indice
<p>
<itemize>
<item> <ref id="definition-100baseT" name="100baseT">
<item> <ref id="definition-10base2" name="10base2">
<item> <ref id="definition-10baseT" name="10baseT">
<item> <ref id="definition-IP-header" name="Cabecera IP">
<item> <ref id="definition-coax" name="Coax, Cable coaxial">
<item> <ref id="definition-broadcast-address" name="Dirección de difusión">
<item> <ref id="definition-network-address" name="Dirección de red, máscara de red">
<item> <ref id="definition-ip-address" name="Dirección IP">
<item> <ref id="definition-dynamic-ip-address" name="Dirección IP dinámica">
<item> <ref id="definition-static-ip-address" name="Dirección IP estática">
<item> <ref id="definition-DNS" name="DNS, Domain Name Service">
<item> <ref id="definition-routing" name="Encaminamiento">
<item> <ref id="definition-network-link" name="Enlace de red">
<item> <ref id="definition-link-level-protocol" name="Enlace, protocolo de nivel de">
<item> <ref id="definition-ethernet" name="Ethernet">
<item> <ref id="definition-fiber" name="Fibra">
<item> <ref id="definition-gigabit-ethernet" name="Gigabit Ethernet">
<item> <ref id="definition-hub" name="Hub">
<item> <ref id="definition-network-interface" name="Interfaz de red, interfaz">
<item> <ref id="definition-internet" name="Internet">
<item> <ref id="definition-IP" name="IP, Internet Protocol">
<item> <ref id="definition-IPv4" name="IPv4, IP versión 4">
<item> <ref id="definition-IPv6" name="IPv6, IP versión 6">
<item> <ref id="definition-LAN" name="LAN, Local Area Network">
<item> <ref id="definition-netmask" name="Máscara de red">
<item> <ref id="definition-modem" name="Módem">
<item> <ref id="definition-node" name="Nodo">
<item> <ref id="definition-packets" name="Paquete">
<item> <ref id="definition-packet-body" name="Paquete, cuerpo">
<item> <ref id="definition-packet-header" name="Paquete, cabecera">
<item> <ref id="definition-packet-sniffer" name="Paquete, esnifador (sniffer)">
<item> <ref id="definition-protocol-stack" name="Pila de Protocolos">
<item> <ref id="definition-ppp-daemon" name="PPP, demonio">
<item> <ref id="definition-PPP" name="PPP, Point-to-Point Protocol">
<item> <ref id="definition-network-protocol" name="Protocolo de red, protocolo">
<item> <ref id="definition-port" name="Puerto, TCP puerto, UDP puerto">
<item> <ref id="definition-destination-port" name="Puerto de destino">
<item> <ref id="definition-source-port" name="Puerto de origen">
<item> <ref id="definition-computer-network" name="Red de ordenadores">
<item> <ref id="definition-retransmission" name="Retransmisión">
<item> <ref id="definition-router" name="Router">
<item> <ref id="definition-route" name="Ruta">
<item> <ref id="definition-default-route" name="Ruta por defecto">
<item> <ref id="definition-hop" name="Salto">
<item> <ref id="definition-name-server" name="Servidor de nombres">
<item> <ref id="definition-sneakernet" name="Sneakernet">
<item> <ref id="definition-sub-network" name="Subred">
<item> <ref id="definition-TCP" name="TCP, Transmission Control Protocol">
<item> <ref id="definition-TCP-header" name="TCP, cabecera">
<item> <ref id="definition-terminator" name="Terminador">
<item> <ref id="definition-topology" name="Topología">
<item> <ref id="definition-star-topology" name="Topología en estrella">
<item> <ref id="definition-UDP" name="UDP, User Datagram Protocol">
<item> <ref id="definition-UTP" name="UTP, Unshielded Twisted Pair">
<item> <ref id="definition-WAN" name="WAN, Wide Area Network">
</itemize>

</article>
