Category Archives: Redes de datos

Publicaciones sobre redes de datos.

Máxima número uno de Gary A. Donahue

Tomado de: “Network Warrior” de Gary A. Donahue. O’Reilly. 2007.
Traducción: Oscar Agudelo R.

Durante los años que he estado en la industria [de las redes de datos], ha llegado a ser evidente para mí que hay ciertas fuerzas que rigen el universo IT (Information Technology). Son fuerzas que están presentes en todos los aspectos de la vida, pero su aplicación nunca ha sido más evidente que en IT.

En cualquier situación donde un ingeniero o ingeniera no consigue hacer lo que desea hacer –o aún peor, no consigue hacer lo que en su opinión profesional considera es lo correcto- estas fuerzas entran en juego. Creo que si más personas entienden estas fuerzas, se tendrían menos conflictos entre los ingenieros y sus superiores.

Las fuerzas que gobiernan el diseño de las redes de datos son:

  • Política
  • Dinero
  • La forma correcta de hacer las cosas
Máxima #1 de GAD: Los diseños de redes de datos están basados en política, dinero y “la forma correcta de hacer las cosas”, en ese orden.

Relación Política - Dinero - Forma correcta de hacer las cosas

La idea es muy simple. Los ingenieros desean hacer las cosas de la forma correcta, que normalmente es considerada la mejor práctica. Para hacer las cosas de manera correcta se requiere dinero. Para conseguir dinero alguien tendrá que ser experto en política. Para decirlo de otra forma: si usted desea hacer las cosas de forma correcta, necesita dinero, y la única forma de conseguir dinero es a través de la política. Puedo escuchar sus voces en mi mente mientras leen esto, refunfuñando: “Odio la política”. La verdad es que usted no odia la política, usted odia la política sucia. Y son dos cosas diferentes.

Miremos de cerca estos tres elementos y cómo ellos se interrelacionan.

Política: La política no solo tiene que ver con que el presidente haga campaña para juntar votos o que el vicepresidente contrate a su hermano antes que a la mejor persona para el trabajo. La política es, entre otras cosas, intrigar o manipular dentro de un grupo o unidad política para tener control o poder. Un grupo son dos o más personas. Cualquier conversación que usted tenga con otra persona es política de algún modo. Cuando saluda a alguien, su actitud y su comportamiento ayudan a que esa persona se forme una opinión de usted. Eso es Política. Si usted tiene la mejor idea del mundo que no ha sido imaginada antes y va donde su jefe para que le ayude a conseguir los fondos, cómo podría conseguirlo si el día anterior usted le dijo “retrasado mental”? ¿Actuaría políticamente su jefe si lo rechaza? Quizá usted esté siendo político cuando lo agrede con insultos. El punto es que en cualquier momento que dos personas estén en una habitación, la política entra en juego. Si usted tiene una reputación de ser una persona difícil, cuando usted solicite algo, eso será considerado (consciente o inconscientemente). Si por el contrario, tiene una reputación de ser una persona sensata y con quien es agradable trabajar, esto estará a su favor.

Ahora que usted entiende que la política no siempre es algo malo, revisemos como puede afectarlo. Ya se estableció que sin política no habrá dinero, pero ¿qué significa realmente esta frase? Un ejemplo. Una compañía de tamaño medio está considerando tener una nueva red de datos y el vicepresidente de IT, quien fue un desarrollador de software durante su vida laboral antes de conseguir estar en un cargo directivo, está a cargo del proyecto. Como líder técnico, usted propone un diseño completamente tolerante a fallas compuesto por equipo de redes cuyo valor asciende a US$2’000.000,oo que requerirá seis meses de trabajo para que sea instalado. El plan es perfecto. Usted conoce cada detalle del hardware y como funcionará impecablemente. Será una obra maestra.

El vicepresidente mira su propuesta y sencillamente dice: “es demasiado costoso y toma demasiado tiempo para instalarse y ponerse a punto, el presupuesto es sólo de 1 millón para equipo y consultoría.” Usted siente que el abdomen se le contrae y se queda sin aire. Su respuesta inmediata puede ser una frase como “pero eso es lo que necesitamos” o “pero no se puede hacer menos que eso.”
Esto es Política. El vicepresidente puede tener el poder de conseguir los fondos adicionales. De hecho, eso es lo que los vicepresidentes saben hacer mejor. Si usted puede explicar al vicepresidente todos los beneficios del diseño y por qué usted considera que los 2 millones en hardware serán bien invertidos, él/ella puede escuchar.

Mejor aún, si usted puede explicar cómo la compañía conseguirá el retorno de la inversión en sólo seis meses gracias a su diseño, usted tendrá la oportunidad de pelearlo. Si por el contrario usted se enfada y se queja sobre cómo la empresa está mal administrada y sólo cuida el dinero y cómo el vicepresidente no entiende de tecnología, el vicepresidente probablemente pensará que usted no entiende la realidad y que es incapaz de trabajar con restricciones reales. No importa quien esté equivocado, de cualquier modo usted no conseguirá el presupuesto que solicitó. Esto sucede cada día alrededor de todo el mundo.

Otra noticia importante: Si usted va a presentar sus ideas al vicepresidente y espera ganar su respeto y respaldo, necesita aprender a jugar en su campo. Gústele o no, ellos tienen el dinero, el poder y la influencia. Si usted no sabe que es un ROI o cómo hablar sobre la depreciación de los equipos no espere que el vicepresidente la dé más dinero.

Dinero: Dinero es lo que todos deseamos [nota: recordemos que el autor es como gringo]. Como ya se dijo, usted necesita entender de política para conseguir el dinero que usted desea o necesita. No hay forma de esquivarlo. Si usted está consiguiendo dinero y no está involucrado en lo político, alguien debe estar apoyándolo detrás de escena. Si no hay suficiente dinero, no tendrá oportunidad de hacer lo que usted desea (es decir, hacer las cosas de la forma correcta).

La forma correcta de hacer las cosas: Esta es la meta que el ingeniero/a busca alcanzar. “las cosas” es cualquier evento que ocurra y con el que se debe trabajar durante cierto tiempo. Los ingenieros saben cuál es “la forma correcta de hacerlas” y frecuentemente se ven frustrados/as porque no se les permite hacer “las cosas” en “la forma correcta”. Si no desea jugar el juego, mi consejo en este caso es: “supérelo”. Simplemente no podrá hacer las cosas de la forma correcta sin dinero y no conseguirá el dinero que necesita sin política.

Si su empresa está corta de dinero, usted está sin suerte. Si su empresa está en mitad de una confusión política que no permite que se consiga el dinero o la aprobación, usted está sin suerte. Si usted desea cambiar las cosas, aprenda política. Es así de simple.

La ciudad de Königsberg y el estudio de las redes

En 1736, el matemático Leonhard Euler (1707–1783) se interesó por un problema que hacía referencia a los siete puentes que permitían visitar los distritos de la ciudad de Königsberg (‘Montaña del Rey’, en alemán). En aquella época la ciudad de Königsberg aún existía. Estaba construida a orillas del río Pregel sobre dos islas que se encontraban en el centro de la corriente del río. Por muchos siglos Königsberg perteneció a Prusia, corazón de la Alemania imperial; sin embargo, al finalizar la II Guerra Mundial, Prusia fue literalmente destrozada y arrasada por los soviéticos;  los soviéticos construyeron una ciudad nueva sobre las ruinas de Königsberg llamada Kaliningrado.

El problema de los siete puentes de Königsberg

puentes
Figura 1. Los puentes de la ciudad de Könisberg

En la Figura 1. se muestran los distritos de la ciudad de Königsberg como A, B, C y D y los puentes como a, b, c, d, e, f y g. La pregunta que se hacían en aquella época los ciudadanos de Königsberg era ¿es posible hacer una caminata que inicie en cualquier punto de la ciudad, cruzando cada puente exactamente una vez y regresando al punto de partida? (Si no había visto éste problema antes, considere dedicarle un momento para buscar la respuesta por su cuenta. Informalmente no es difícil llegar a la conclusión que el camino propuesto en el planteamiento del problema no existe, sin embargo, probar esto formalmente es más difícil.)

Intentemos encontrar el recorrido circular solicitado, comenzando -por ejemplo- en A. La primera vez, cuando regresemos a A,  hemos utilizado dos de los cinco puentes conectados con A. La siguiente vez que regresemos a A hemos utilizado cuatro puentes. En este momento debemos abandonar A utilizando el quinto puente, pero ya no existe posibilidad de regresar al punto A sin utilizar uno de los cinco puentes por segunda vez. Esto permite ver que el problema planteado para los puentes de la ciudad de Königsberg no tiene solución. Utilizando un análisis similar, se puede ver que también es imposible encontrar algún recorrido, no necesariamente circular (un recorrido que puede terminar en un punto diferente al que se inició), que utilice cada puente sólo una vez.

Leonhard Euler y el nacimiento de la teoría de grafos

Lo que Euler hizo con base en el problema de los siete puentes de Königsberg iba más allá de solucionar el popular problema. Su artículo, titulado Solutio problematis ad geometriam situs pertinentis (Sobre la solución de un problema relacionado con la geometría de posición) de algún modo marcó el nacimiento de lo que hoy llamamos teoría de grafos, una rama de las matemáticas discretas que en los últimos tres siglos se ha convertido en el principal lenguaje matemático para describir las propiedades de las redes en general.

Después de describir el popular problema de los puentes, Euler presentó su trabajo con las siguientes palabras (aproximadamente): Con base en el planteamiento expuesto, formulo el siguiente problema general: dada cualquier configuración del río y las ramificaciones en las que pueda dividirse y cualquier cantidad de puentes, determinar si es o no posible cruzar cada puente exactamente una vez. Euler se dió cuenta que la forma exacta de las orillas o de las islas no era importante, la solución al problema dependía sólo de las propiedades de la conexión entre los distritos.

La solución que se presenta en la actualidad, que quizá ahora pueda parecer sencilla, no era obvia en el siglo XVIII pues utiliza un grafo. Un grafo es un objeto matemático que consta de un conjunto de nodos (llamados también puntos o vértices) y un conjunto de arcos que muestran la relación entre los nodos (los arcos también reciben el nombre de líneas, enlaces o aristas). La Figura 2. muestra un grafo que representa el problema de los puentes de Königsberg. Utiliza cuatro nodos representando los distritos y siete arcos que representan los puentes que los interconectan (este tipo de gráfico nunca lo utilizó Euler).

puentes2
Figura 2. Grafo de Könisberg

Grado, camino, sendero, trayecto, ciclo y otros conceptos

[La terminología de la teoría de grafos aun no es universal, por esto los nombres presentados a continuación pueden ser diferentes a los que usted ya conoce para el mismo concepto.]

El número de arcos que “tocan” un nodo es llamado el grado del nodo. Por ejemplo, en el grafo de Königsberg, el nodo A tiene grado cinco, pues cinco arcos -cinco puentes- tocan dicho nodo.

Dependiendo de la forma en que se recorra un grafo, la secuencia de arcos y nodos visitados recibe un nombre diferente. Puede ser un camino (walk), un camino cerrado (closed walk), un sendero (trail), un sendero cerrado (closed trail), un trayecto (path) o un ciclo (cycle).

  • Camino: Si se sigue una secuencia de arcos en un grafo que permiten visitar los nodos sin importar dónde se inició el paseo y donde terminó o si se dejó de visitar algún nodo o algún arco o si se pasó varias veces por el mismo nodo o arco, la secuencia recibe el nombre de camino (walk).
  • Camino cerrado: Si se sigue una secuencia de arcos en un grafo que permiten visitar los nodos garantizando que el paseo inicia y termina en el mismo nodo, pero sin importar si se dejó de visitar algún nodo o algún arco o si se pasó varias veces por el mismo nodo o arco, la secuencia recibe el nombre de camino cerrado (closed walk).
  • Sendero: Si se sigue una secuencia de arcos en un grafo que permiten visitar los nodos sin importar dónde se inició el paseo y donde terminó o si se dejó de visitar algún nodo o si se pasó varias veces por el mismo nodo, pero se garantiza que cada arco se visita una sola vez, la secuencia recibe el nombre de sendero (trail).
  • Sendero cerrado: Si se sigue una secuencia de arcos en un grafo que permiten visitar los nodos garantizando que el paseo inicia y termina en el mismo nodo y que cada arco se visita una sola vez, pero sin importar si se dejó de visitar algún nodo o si se pasó varias veces por el mismo nodo, la secuencia recibe el nombre de sendero cerrado (closed trail).
  • Trayecto: es un sendero (secuencia de arcos diferentes sin importar dónde se inició el paseo y donde terminó) que visita cada nodo solamente una vez.
  • Ciclo: En un grafo con tres o más nodos, un ciclo es un sendero cerrado (secuencia de arcos diferentes garantizando que el paseo inicia y termina en el mismo nodo) que visita cada nodo solamente una vez.
grafo3
Figura 3. Grafo para ejemplos de tipos de recorrido

Por ejemplo, en la figura 3, si se visitan los nodos (A, B, C, E, B, C) el recorrido es un camino (walk), pero no es un sendero (trail) ya que el arco que interconecta B con C se visita dos veces. Si se visitan los nodos (A, B, C, E, B, D) el recorrido hecho es un sendero (trail) pues cada arco del recorrido se visita sólo una vez pero no es un trayecto (path) ya que el nodo B se visita más de una vez.  Si se recorren los nodos (A,B,C,E,B,D,A) se tiene un sendero cerrado (closed trail) pues inicia y termina en el mismo nodo pero no se tiene un ciclo (cycle) ya que el nodo B se visita más de una vez. Finalmente, el recorrido (A, B, C, F, E, D, A) es un ciclo (cycle).

Un sendero de Euler pasa por todos los nodos visitando cada arco una sola vez y un tour de Euler es un sendero de Euler que además de pasar por todos los nodos visitando cada arco una sola vez, inicia y termina en el mismo nodo. Estos dos conceptos fueron estudiados por Euler al resolver el problema de los puentes de Königsberg (aunque él no utilizó esos nombres para los conceptos).

La solución de Euler

Ahora, el problema planteado podemos enunciarlo como:

Dado un grafo, ¿es posible determinar si tiene un sendero cerrado? Es decir, dado un grafo cualquiera ¿Es posible determinar si el grafo se puede recorrer iniciando y terminando en el mismo nodo visitando cada arco exactamente una vez?

Euler probó que una condición necesaria para la existencia del tour de Euler es que todos los nodos en el grafo sean de grado par, y estableció -sin prueba- que un grafo cuyos nodos sean de grado par tendrá un tour de Euler. La primera prueba completa de esta última afirmación -realizada por Carl Hierholzer- fue publicada hasta 1873.

Para garantizar la existencia de senderos de Euler, máximo dos nodos pueden tener grado impar (los demás deben ser de grado par). Si todos los nodos son de grado par y no hay nodos de grado impar, todos los senderos de Euler son tour de Euler. Si hay exactamente dos nodos de grado impar, los posibles senderos inician en uno de ellos y terminan en el otro. En ocasiones un grafo que tiene un sendero de Euler pero no tienen un tour de Euler es llamado semi-Euleriano.

El problema de la existencia de los senderos de Euler y de los tour de Euler en las redes -al igual que el problema relacionado de los trayectos Hamiltonianos y los ciclos Hamiltonianos (trayectos que visitan cada nodo exactamente una vez)- son aún de gran interés para los matemáticos.

El artículo de Euler de 1736 (que realmente fue publicado hasta 1741) sobre el problema de los puentes de Königsberg es visto como la primera gran contribución a la teoría de grafos -aunque la solución de Euler nunca menciona los grafos-. El artículo The Truth about Königsberg de Brian Hopkins y Robin J. Wilson presenta el contexto histórico de la solución de Euler, muestra el método de solución utilizado, describe la “geometría de posición” y hace un breve seguimiento hasta la actualidad.

La teoría de grafos y el estudio de las redes

En su forma más simple, una red no es más que un conjunto de elementos discretos (los nodos) y un conjunto de conexiones (los arcos) que enlazan los elementos. Los elementos y sus conexiones pueden ser cualquier cosa – personas y sus vínculos de amistad, computadores y sus enlaces de comunicaciones, páginas web y sus hiper-enlaces, compuestos químicos y sus reacciones, artículos científicos y sus citas por otros autores, etcétera.

La teoría de grafos es muy poderosa, pues al abstraer los detalles de un problema es capaz de describir importantes características topológicas con una claridad que sería imposible si se conservaran todos los detalles del problema. Esta teoría, nacida a partir del problema de los sietes puentes de la ciudad de Königsberg, es muy importante en el estudio de la redes y, en consecuencia, para todas las personas interesadas en este tema.

Referencias

Newman, Barabási, Watts. The Structure and Dynamics of Networks. 2006. Princeton University Press.

Jungnickel, D.  Graphs, Networks and Algorithms. 2007. Springer-Verlag.

Luccio, Pagli, Steel. Mathematical and Algorithmic Foundations of the Internet. 2011. CRC Press