lunes, 11 de noviembre de 2013

Redes - Primera Parte

Este documento fue publicado en la revista Tuxinfo, número 56, y es la primera parte de un tutorial de redes de datos para las masas... 


Redes para las masas – Parte I



Introducción


 

Con este artículo comenzamos una serie de entregas destinadas a explicar de una forma sencilla y amena los aspectos más importantes de las redes de datos que nos permiten hoy en día interconectar nuestras computadoras.

Comenzaremos analizando conceptos de comunicación en general, luego veremos aspectos básicos de redes, construiremos una red en nuestras máquinas, explicaremos TCP/IP, revisaremos cuestiones atinentes a la seguridad de una red de datos, implementaremos servidores y clientes, y haremos prácticas que nos permitirán afianzar todo lo aprendido.

Dentro de los materiales que usaremos estarán:

  • Una PC con un procesador por lo menos de dos nucleos, 2 GB de memoria RAM, y mínimamente 50 GB de espacio libre en disco, o lo que tengamos a mano para ejecutar un sistema operativo GNU/Linux, un software de virtualización, y por lo menos dos máquinas virtuales también GNU/Linux.
  • Si en lugar de lo anterior contamos con dos o tres máquinas que puedan ser reinstaladas completamente sin llorar luego por los rincones, también nos sirve.
  • Software de virtualización Oracle© VirtualBox para la arquitectura de procesador que estemos utilizando (32 o 64 bits). Si usaremos varias máquinas físicas, no lo necesitaremos.
  • Distribución Debian GNU/Linux que se puede bajar desde la página de Debian (http://www.debian.org).
  • Nuestros pobres y cansados cerebros.

Dicho lo anterior, comencemos con las redes de datos.


Conceptos generales de comunicaciones

Hoy en día palabras tales como “globalización” y “estándar” suenan bastante vanguardistas. Lo cierto es que los esfuerzos por globalizar comenzaron mucho antes de lo que imaginamos, y casi me animaría a pensar en que la vida misma los trajo consigo.

Imaginemos un hombre prehistórico, y sus esfuerzos por comunicarse con los de su especie. Tantas fueron sus ganas de compartir información que debió crear con los pocos elementos de que disponía un estilo gráfico que pueda ser reconocido por otros, y hasta ajustar los sonidos que emitían sus poco dominadas cuerdas vocales para que sean comprensibles por otros. Fijó un estándar llamado lenguaje, y lo compartió con los demás. Planteó un método de difusión del nuevo estándar, y abrió su código lo suficiente para que llegue lo más lejos posible.

Claro que este esfuerzo no ocurrió sólo en un lugar del planeta, y por ello hoy en día tenemos varios idiomas, algunos muy parecidos y otros muy diferentes, dada su raíz y zona de desarrollo y evolución.

El ánimo de compartir información forma parte de la naturaleza del ser humano, y la historia del mundo puede dar fe de ello. Primero fue el arte rupestre, luego lenguajes primitivos, siguió su evolución y las tradiciones orales, entonces llegó la letra escrita, los medios mecánicos de comunicación, los eléctricos, y ahora los electrónicos. Como sea, la tendencia humana fue, es y será la misma. Por suerte.

En un proceso de comunicación existen ciertos elementos que se repiten, sin importar la tecnología que se use en cada caso. Ellos son:

  • Un emisor
  • Un receptor
  • Un mensaje
  • Un medio para transportar dicho mensaje


Y el proceso de comunicación en sí mismo implica, según los expertos, ocho pasos fundamentales que podremos asociar a cualquier caso:

  • Desarrollo de una idea o contenido: Este es el paso que en cierta forma le da sentido al proceso de comunicación. Sin el contenido, la comunicación carecería de sentido.
  • Codificación: El contenido se debe convertir a un formato que sea comprensible tanto para el emisor como para el receptor. Si yo le hablo en español a un ruso, en contenido no llegará, o llegará notablemente distorsionado. A nivel de máquinas, si dos de ellas no utilizan un protocolo de comunicaciones común a ambas, no existirá la comunicación.
  • Transmisión: Se elegirá para enviar el mensaje ya codificado un canal de comunicaciones que resulte accesible a todas las partes intervinientes en este proceso, y se evitarán las interferencias lo más que se pueda, justamente para garantizar la integridad del contenido.
  • Recepción: Independientemente de la herramienta utilizada, el mensaje debe ser recibido por alguien. Ojos, oídos, o un proceso son ejemplos de receptores de información codificada.
  • Decodificación: El mensaje recibido debe ser decodificado para ajustarse a los patrones cognocitivos del receptor. En el caso de un mensaje encriptado, se deberá utilizar un conjunto de claves previamente distribuidas, para luego poder leer lo que el mismo contiene.
  • Aceptación: Ya con el mensaje recibido y decodificado, el receptor podrá enviar una aceptación del mismo, para que se sepa que lo ha recibido.
  • Uso: El contenido recibido será utilizado para algo. Puede ser para saber que debemos encontrarnos para salir todos juntos, o para que se almacene un archivo, por citar ejemplos.
  • Retroalimentación: La retoalimentación se compone de un mensaje que el receptor entrega al emisor para saber que el mensaje se ha recibido, se ha decodificado, aceptado, y se ha hecho uso de su contenido.


De estos conceptos podemos, como es esperado, hacer analogías tanto con la comunicación verbal, diaria, como con la que existe entre los sistemas informáticos.

Redes de datos

La primer red de computadoras (no electrónicas) fue desarrollada por matemáticos que colocaron unas cuerdas en sus ábacos para que los cálculos de uno se transmitieran a los demás. Ahora, un buen tiempo después, las computadoras y sus redes han evolucionado lo suficiente como para no usar cuerdas. Ahora utilizamos conductores metálicos, o el mismo aire para transmitir nuestros mensajes.



Eso nos lleva al siguiente concepto: una red no es más que dos o más computadoras conectadas entre sí para intercambiar información. En gran parte, los medios de interconexión son cables metálicos, pero en otros pueden ser fibras ópticas, o el mismo aire, como pasa con las redes WiFi, por citar sólo un ejemplo.

Ahora bien, sólo con el hardware no se llegaría muy lejos. Necesitamos también software que permita que la comunicación se haga efectiva. Para citar una analogía con la comunicación verbal, si emitimos sonidos usando nuestro propio hardware, que es nuestra garganta, pero no hay un software, que es nuestro poder de raciocinio, que lo acompañe, la comunicación no tendrá lugar, o no habrá nada que comunicar.

En los albores de la informática las máquinas no estaban directamente interconectadas. Hoy en día, no concebimos siquiera que nuestro teléfono no esté interconectado a ciertas redes de datos.

Todas las redes, sin importar su tamaño, poseen determinados bloques constitutivos que veremos representados en porciones de hardware o de software, según el caso del que se trate. Estos bloques son:

  • Computadoras o proesos cliente: Las máquinas que usamos generalmente para acceder recursos existentes en una red se denominan clientes. Este concepto no está restringido sólo a computadoras enteras, ya que en una misma máquina podemos encontrar procesos cliente de otros servidores. Un ejemplo de este caso sería una aplicación basada en tecnologías web que usemos en nuestra propia máquina, o una aplicación que utilice una base de datos para funcionar. En el primer caso, de seguro nuestro navegador será un proceso cliente de un servidor Web (¿apache, quizá?) alojado en nuestra misma máquina, y en el segundo, la aplicación será un cliente del servidor de bases de datos.
  • Computadoras o procesos servidores: Las computadoras o procesos que ofrecen recursos a los clientes se denominan servidores. Por ejemplo, en el caso anterior, el servidor web apache es, valga la redundancia, un proceso servidor. Análogamente, cuando le hacemos una pregunta a alguien, nosotros somos clientes del conocimiento de quien es preguntado. El será nuestro servidor.
  • Interfaces de red: Las interfaces de red serán los componentes que permitirán a las máquinas conectarse a una red de datos. Cuando trabajamos dentro de nuestra propia máquina es muy común que usemos una interfaz llamada “loopback”, que si bien ahora está implementada como una porción de software, en los principios estaba constituida por un conector que se ponía en algún puerto de nuestras máquinas, y que tomaba las señales de salida de ellos para reingresarlas. Por eso “loop”, y “back”. Ejemplos de interfaces de red son Ethernet, Fiber-Channel, WiFi, etc.
  • Medios de conexión: En el caso de las redes cableadas, este medio puede ser un conductor de cobre, o una fibra óptica, y en el caso de las redes inalámbricas, puede ser el aire (WiFi, Vsat, etc.).
  • Sistemas de interconexión: Las redes de datos necesitan sistemas que interconecten sus componentes. Puede tratarse de hubs, switches, routers, puntos de acceso, modems, y un largo etcétera que será cubierto en esta serie de artículos.
  • Software de red: Tal como antes mencionamos, la red tal como la conocemos no sería tal si sólo se pensara en el hardware. Sin el conjunto de programas que permiten que los ocho pasos del proceso de comunicación antes analizado se hagan efectivos, no existiría la comunicación.

Ya tenemos una idea formada de los bloques que construyen una red, ahora vamos a ver cómo podríamos clasificarlas.

Marcando las diferencias

No sólo los pescadores tienen diferentes tipos de redes según el pez que quieran retirar del río o mar. Otros pescados más estudiosos de las redes de datos decidieron diferenciarlas según varios conceptos. Así las dividieron según su alcance, por el tipo de conexión, por su topología física (o el dibujo que representan en nuestras cabezas), por el sentido de dirección de sus datos, y mucho más. No es la idea de estos artículos enloquecernos con la epistemologia de las redes de datos, pero sí estar listos para entender lo que un experto puede decirnos con cara de “éste no me va a entender” (una paradoja, si hablamos de comunicación, ¿no?)

Las redes se clasifican, según su topología física en las siguientes:

  • Red de bus: La red de bus es aquella que posee un única canal o troncal por medio del cual se transmiten los datos interconectando todos los dispositivos. Las antiguas redes armadas con cables coaxiles (o BNC, por Bus Network Connection) utilizaban esta topología. Sus ventajas radican en que sólo se requiere de un cable para interconectar todas las máquinas, lo que simplifica su despliegue en un edificio, por ejemplo. Sus desventajas son el límite de equipos que se pueden conectar en un único canal, la degradación de la señal que puede existir (si todos hablan al mismo tiempo en una misma habitación, será más complicado escuchar a la persona que quiere hablar con uno mismo), el límite de longitud que se puede tener en un único canal, y la baja tolerancia a fallas, ya que sólo se requiere un problema en un cable para que todas las máquinas de la red dejen de comunicarse. Detectar el lugar donde la red está abierta, recuerdo, me trajo bastantes dolores de cabeza en su momento.


  • Red en anillo (o “ring”, por su traducción al inglés, y por tener que soportar el equivalente a un puñetazo de Mike Tyson cada vez que hay que detectar un error en ellas): Es la topología en la que cada computadora está conectada con la inmediatamente siguiente, y con la anterior, mediante dos conectores: uno de entrada, y otro de salida. Si un paquete de red es enviado a una máquina que está a “tres máquinas” de la nuestra, dicho paquete debe pasar por todas las máquinas hasta llegar a la de destino, que enviará su respuesta, la que recorrerá todas las demás máquinas hasta llegar a la original. Entre sus ventajas encontramos que el tiempo de acceso a los datos es el mismo en todas las máquinas, y que el rendimiento de la red no cae según se conecten más máquinas al anillo. Entre sus desventajas, encontraremos que la longitud del canal nuevamente está limitada por la tecnología, que si se rompe una parte del canal hay que aislar máquina por máquina hasta tanto se encuentre el problema, y que si eso ocurre, se pierde la conexión en todas las máquinas de la red.


  • Red en estrella (algunas redes tienen estrellas, y otras están estrelladas, que no es lo mismo): La red en estrella es aquella en la que todas las máquinas están conectadas a un punto central que las comunica a todas con todas. Su arquitectura es análoga a una estación de trenes, donde cada tren tiene su propia vía por la que circular, evitando así choques entre sus formaciones. Casi siempre se mantiene así. Como todas las conexiones se realizan a través de este punto central, ninguna máquina está conectada directamente a otra, como pasaba en los casos de bus o anillo. Ejemplos de puntos centrales son los hubs, switches, o routers, de los cuales hablaremos luego. Entre sus ventajas encontramos que un problema de conexión en una máquina no se propaga a las demás, su capacidad de agregar equipos a la red de forma muy simple, y su bajísimo costo de mantenimiento. Entre sus desventajas encontramos que si el punto central tiene un problema, la red entera falla (esto se ha solucionado a través de esquemas de alta disponibilidad de red), y que requiere un tendido de cables más complicado y por ende costoso que en los casos anteriores (se debe tender un cable de red desde el punto central hasta cada uno de las máquinas de la red), entre otros.


  • Red mallada: En este tipo de redes cada máquina está directamente conectada a todas y cada una de las demás máquinas. Suena casi como una teoría imposible de cumplir con realidades tecnológicas, pero más adelante veremos que Internet en sí es una red de este estilo, y que estándares tales como “OSPF” permiten su uso. Este tipo de red no necesita de un nodo central, por lo que las tareas de mantenimiento de la red misma se reducen notablemente. Entre sus ventajas encontramos que las máquinas contarán con un buen nivel de redundancia en los enlaces, ya que si alguno se cae, podrá utilizar otro conjunto de enlaces pasando por otras máquinas para llegar a destino, también entregando un servicio de características ininterrumpidas. Entre sus desventajas encontramos que el agregado de cada máquina a la red puede ser un verdadero problema, y que el ancho de banda disponible para cada máquina puede verse afectado cuando el número de máquinas aumenta. La red “Totalmente Conexa” es una variante de este tipo de red que interconecta a todas sus máquinas, sin dejar a ninguna con conexiones inexistentes hacia otra.


  • Red en árbol: No tiene que ver con que siempre está colgada, o que es una tecnología verde, a no llorar si se es vegetariano. Es una topología de red que conecta a sus máquinas en forma de árbol, permitiendo una estructura jerárquica de nodos. Los nodos más consultados se colocarán en la parte más angosta del árbol, colocando varias estrellas en cada una de las partes más frondosas de él. Hay quienes la consideran una de las versiones de las redes mixtas, pero como a los seres humanos se nos da bien eso de clasificar y catalogar todo, hemos creado un tipo de red para ella. Entre sus ventajas encontramos que sus segmentos se pueden conectar en forma muy sencilla, y que en ella los problemas se pueden detectar sin mayores dolores de cabeza. Entre sus desventajas encontramos que su cableado puede ser bastante complicado, y hasta engorroso, si la cantidad de estrellas aumenta en forma indiscriminada. Pero es ésta la topología más utilizada en las redes corporativas grandes ya que, como se podrán imaginar, el que un servidor, siempre más accedido que una estación de trabajo, pueda encontrarse en un segmento más liberado, entonces con menos colisiones (ya veremos qué son las colisiones), mejora su respuesta.


  • Red mixta: Cualquier combinación de todas las topologías anteriores, y que funcionen, claro está, será considerada por los clasificadores como una red mixta. Sencillo, al menos en este caso.

Ahora, un bonito cuadro para resumir todas las redes de datos de las que hemos hablado:




Conclusiones

Por esta entrega, ya hemos tenido material como para volvernos un poco locos. Y como nada es gratis en esta vida, los invito a pensar en los ejemplos que tienen más cerca, ya sea en sus empresas, como en sus casas, e intentar descifrar qué topología física les parece que la misma posee. Luego, piensen en las relaciones que tienen en su vida cotidiana, y hagan lo mismo. Piensen en la TV, el teatro, la radio, el chat, una charla con vuetros amigos o con uno solo, en un discurso político, y demás. Enrédense.







Publicar un comentario en la entrada