miércoles, 6 de octubre de 2010

Internet ¿y eso qué es? (Parte I)

Digamos que queremos explicarle algo bastante complicado a alguien (como curar un enfermo, como construir una casa, como diseñar una máquina...). Tenemos dos opciones:

-Empezar a bajo nivel (bottom up): Esto implica pasarte unos años describiendo los entresijos microscópicos de lo que quieres explicar para ir combinándolos poco a poco hasta llegar al comportamiento macroscópico. En médicina, implica empezar por bioquímica, en arquitectura/caminos por los tensores y la física de los materiales, en teleco por álgebra y campos electromágneticos...

-Empezar a alto nivel (top down): Al contrario que en el caso anterior, arrancamos con las características generales y vamos bajando de nivel según sea necesario para ir rellenando detalles.

Tradicionalmente, la educación universitaria se rige por el primer principio. Esta es la razón por la cual tanta potenciales ingenieros muy capaces salen por patas al llegar y ver que se tienen que comer álgebra, cálculo, física, campos electromagnéticos, etc. sin el menor atisbo de por qué cojones hacen falta para nada.

Yo soy un enamorado de la segunda opción desde que en cuarto me dieron redes de ordenadores con el Kurose/Ross. Como modesto homenaje a ese gran libro y a los profesores a los que no les suda el nuflo que sus alumnos tengan menos comprensión intuitiva de su asignatura que un tertuliano de la tele, me gustaría explicar qué diantres es internet desde esta perspectiva.

Pongamos que queremos entrar en una página para ver la siguiente foto (tal vez recordaréis a las hermanas Shannon del post sobre Teoría de la Información):


Veamos qué ocurre a distintos niveles cuando se baja la página al navegador de nuestro ordenador.

1. La página está alojada en el ordenador de algún alma caritativa que se dedica a distribuir fotos lésbico-incestuosas por internet. Dicho ordenador se llama servidor y se comunica con nuestro ordenador (el cliente) por un protocolo llamado http.

Un protocolo es simplemente una serie de reglas de educación que rigen la comunicación entre dos ordenadores. Básicamente esto consiste en un intercambio de mensajes en plan "oye, que quiero esta página", "ah, vale, te la mando junto con instrucciones sobre como mostrar el texto y la foto".  Para que dos entes se entiendan, no sólo hacen falta unas reglas comunes, sino también un lenguaje que represente la información transmitida. En este caso el lenguaje es html.

Para mandar emails, hablar por skype o bajarse cosas, el principio es el mismo. Lo único que cambian son los protocolos y los lenguajes en los que se representa la información intercambiada. Este tipo de aplicaciones forman el nivel de aplicación (valga la redundancia)

2. Pero vamos a ver, si yo estoy en Madrid y el ordenador del tipo está en Wyoming, ¿cómo coño pueden dialogar para que yo pueda ver tipas en bolas?

Para saberlo, leed la próxima parte del post, que intentaré colgar próximamente. 
 
Para terminar quiero hacer una aclaración.  No sugiero que se eliminen asignaturas básicas de primero de carrera (aunque al enseñarlas sería un detalle que se intentase transmitir su utilidad intuitiva en lugar de convertirlas en un hierro candente que hay introducirse por el ano para que  algún día te den el diploma). Lo que sí sugiero enérgicamente es que el acercamiento top-down debería ser la estrategia didáctica general de cualquier carrera.

No hay comentarios: