¿Qué es un
router?
por Antonio Gallego de Torres, autor del libro "Enrutadores Cisco
".
© 2003. Se autoriza la difusión total o parcial
siempre que se cite procedencia.
¿Qué
es un router?
Un router es un dispositivo que conecta redes de
comunicaciones. Dicho de otra forma, un router es un ordenador
especializado que resuelve problemas muy concretos de comunicaciones.
¿Para
qué hace falta un ordenador de comunicaciones?
Los ficheros de datos que mandamos por las redes de comunicaciones no
se mueven como un sólo bloque sino que son fragmentados en
paquetes. Este tipo de comunicación se le llama
conmutación de paquetes. El problema fundamental que el
router resuelve es el de encontrar un camino entre el origen y el
destino para cada uno de los paquetes de datos que atraviesan las redes
de comunicaciones.
¿Qué
es eso de los niveles?
El problema de construir un sistema de comunicaciones es
tan complejo que no resulta práctico intentar resolverlo
todo a la vez. Es mejor descomponer el sistema en componentes
más sencillos, que resuelvan cada uno parte del problema. Un
sistema de comunicaciones debe manejar elementos tan distintos como las
especificaciones eléctricas del medio (nivel 1,
físico), proporcionar control de errores y flujo (nivel 2,
enlace), fragmentar y reensamblar los paquetes así como
direccionarlos (nivel 3, red), seguir la pista de los paquetes y
garantizar que lleguen todos a su destino (nivel 4, transporte), etc...
Cada uno de los componentes que se ocupa de una de estas tareas
pertenece a un nivel o capa de la pila de protocolos.
¿Cómo
funciona lo de los niveles en la práctica?
Las aplicaciones (web, ftp, email...) no hablan directamente unas con
otras, sino que lo hacen con el componente correspondiente de la capa
directamente inferior del protocolo usado para comunicarse. Por
ejemplo, un usuario que quiera hacer descargar una página
web usará una aplicación Web (el navegador) para
conectarse con el servidor Web (httpd). Para ello la
petición baja por la pila de protocolos del cliente
(Navegador->TCP->IP->driver->Ethernet) y
sube por la pila del servidor
(Ethernet->driver->IP->TCP->httpd). La
respuesta del servidor sigue el camino contrario.
Navegador
Web
httpd
Aplicación
|
|
TCP
TCP
Transporte
|
|
IP
IP
Red
|
|
driver de la
tarjeta
driver de la tarjeta Enlace
|
|
Ethernet-------------------------Ethernet
Físico
Desde un punto de vista lógico cada módulo de una
'pila' habla con el módulo correspondiente de la otra 'pila'
(navegador con servidor, módulo IP con módulo IP,
etc...), pero desde un punto de vista real cada módulo
sólo puede hablar directamente con los contiguos (por
ejemplo IP->driver o IP->TCP)
A este moverse por las distintas capas se le llama subir (y bajar) por
la pila de protocolos. Cada capa o nivel añade
información adicional, lo que se conoce como
encapsulamiento, porque cada módulo encapsula o envuelve los
datos de la capa anterior dentro un nuevo paquete con
información adicional correspondiente al nivel que
está manipulando la información. A esta
información adicional se le llama cabecera (header). En la
cabecera se almacena información correspondiente a la capa
como direcciones, corrección de errores, tipo de protocolo
transportado, etc... Podemos pensar en el encapsulamiento como el acto
de meter una carta en un sobre (y etiquetarlo convenientemente), luego
los sobres se agrupan en sacas (que también van etiquetadas)
y finalmente las sacas se montan en vagones de tren (que entiendo que
irán numerados de alguna forma, pero que me aspen si
sé como...)
+-------+
Telnet
| datos |
+-------+
+--------+-------+
TCP
|cabecera| datos |
+--------+-------+
+--------+----------------+
IP
|cabecera|
datos |
+--------+----------------+
+--------+-------------------------+
NIC driver
|cabecera|
datos
|
+--------+-------------------------+
¿Qué
diferencia hay entre un router, un hub y un switch?
Se trata de tres dispositivos de red que trabajan en
niveles distintos. Un hub (concentrador) conecta dispositivos a un
mismo nivel físico (compartición de medio).
Cuando el número de dispositivos conectados a un
único medio crece, estos compiten por acceder al nivel
físico (colisionan). Una solución consiste en
usar switches (conmutadores), que usan información adicional
(conocida como de enlace) para separar los dispositivos en distintos
dominios de colisión (separa los medios físicos).
No obstante ciertos paquetes con muchos destinatarios (paquetes de
difusión o broadcast) no son controlables a
través de dominios de colisión. os routers
(enrutadores) usan información adicional (de la capa o nivel
de red) para separar nuevamente las redes en dominios de
difusión.
¿Cada
dispositivo de red trabaja en una capa?
Cada dispositivo usa fundamentalmente la
información de una capa para realizar su función
de distribución de tráfico. Un hub es
básicamente un repetidor, ampliando el medio
físico:
Telnet Telnetd
|
|
TCP TCP
|
|
IP
IP
|
|
driver driver
|
|
----HUB----
Un switch usa la información contenida en las cabeceras de
los paquetes correspondientes al nivel de enlace para separar el
tráfico:
Telnet
Telnetd
|
|
TCP
TCP
|
|
IP
IP
|
|
driver
driver
driver
|
|
|
----------SWITCH--------
Un router es un dispositivo de red, de forma que los paquetes suben
hasta la capa de red de la pila de protocolos del router para decidir
como se deben distribuir:
Telnet
Telnetd
|
|
TCP
TCP
|
|
IP
IP
IP
|
|
|
driver
driver
driver
|
|
|
----------ROUTER--------
Estos dispositivos no necesitan implementar las capas superiores para
realizar su función.
¿Qué
ventajas se obtienen al separar los sistemas en subsistemas?
Al separar el problema en subsistemas cuyas funciones se
han negociado previamente se consigue (1) que estos módulos
sean especializados y eficientes y (2) que puedan estar construidos por
distintos fabricantes (o que es lo mismo, que dispositivos de distintos
fabricantes se puedan entender). Además ayuda a localizar
los puntos dónde hay que realizar los cambios a medida que
las tecnologías avanzan (la aparición de nuevos
medios físicos no obliga a cambiar todo el sistema. Desde un
punto de vista lógica cada módulo de un sistema
responsable de manejar una capa habla con la capa homóloga
en el otro sistema, aunque desde un punto de vista real es preciso que
los datos bajen (encapsulándose) por toda la pila de
protocolos de un sistema y suban (desencapsulandose) por toda la pila
de protocolos del sistema destino para que la información
llegue a la capa correspondiente en el sistema destinatario.
¿Es exclusiva
esta técnica de las telecomunicaciones?
Esta técnica de descomponer problemas complejos
en otros más simples es fundamental en la
informática y en la ciencia en general. Ejemplos de sistemas
que se benefician de la descomposición en módulos
especializados son las bases de datos (nivel físico,
lógico, ), sistemas operativos (núcleo o kernel,
API, aplicaciones), programación, etc...
¿En
qué se diferencian unos routers de otros?
- Facilidad de uso
- Tipos de conectores
- Protocolos que conoce
- Velocidad de conmutación<
¿Qué
otros problemas resuelve un router?
- Seguridad (ver artículo ssobre listas de acceso)
- NAT (ver artículo sobre NNetwork Address Traslation)
¿Dónde
puedo aprender más?
Los fabricantes de routers ofrecen en sus webs
información completa de sus productos y de los problemas que
resuelven. Cisco, uno de los más importantes, tiene la
suya aquí;.
El recurso definitivo para comprender Internet son los RFCs (Request
For Comments). Puede buscar en Yahoo o Google el 'RFC 1180', que
describe el conjunto de protocolos TCP/IP.