Geeksoup
Geeksoup blog

Tus colegitas de silicio: Redes. Capítulo II

En el capítulo anterior más o menos nos quedo claro el concepto de protocolo, como uno de los conceptos más importantes. En este, vamos a analizar otro concepto importante, el de capa, y con los conceptos que aprendimos, y conocemos de la anterior entrega, explicaremos el modelo de una red local.

La verdad que los tres capitulos que tenía en mente son bastante distintos a los tres que he escrito. Los tres primeros capítulos son el primero de los que tenía planeado, pero debido a su extensión, he tenido que separarlos. Pero aun así escribiré el resto de articulos que me quedan, que creo que a más de uno le gustarán bastante.
Comenzamos…
Si te has fijado, la manera más usual de conectarse a una red es, conectar nuestra tarjeta de red al router, usando un cable Ethernet (esos que tienen la clavija como las del telefono, pero más ancha) o bien conectarnos de manera inalámbrica, usando WiFi. Y sin embargo, independientemente de que manera de conectarnos usemos, podemos acceder a los mismos servicios…
Los datos no se envian así sin más a la aventura de la red… ¿Como saben donde tienen que ir? ¿Y de donde vienen si se espera una respuesta? Bueno… Si anteriormente dijimos que los protocolos nos servian para ponernos de acuerdo sobre que datos enviar y como hacerlo, un protocolo puede ser el instrumento perfecto para controlar el tráfico de la red.

¿Pero espera? ¿Hay distintos protocolos funcionando a la vez en mi conexión?
Pues si. Y cada uno se encarga de una cosa distinta. Para tener bien definido a que controla cada cosa, se divide toda la conexión en «capas». En una capa actua un protocolo que controla como enviar los datos, en otra otro que controla donde enviarlos, en otra capa actua otro sobre que datos enviar etc.

Como siempre, buscamos un estandar así para ponernos de acuerdo y así es como surge el «Modelo OSI».
El OSI, es un modelo abstracto (importante esto, ahora veremos porque), que sirve para explicar las conexiones de red. Para que lo entiendas es mejor que lo veas:
Modelo OSI

¿Por que el OSI es un modelo abstracto? Por que como veis, cada capa no tiene su protocolo, si no que hay algunos protocolos que se encargan de varias funciones a la vez. Y ahora vamos a explicar un poco las capas, pero antes, tienes que saber una cosa:
Cuando nosotros mandamos información lo hacemos en manera de paquetes. Asi que hay bastante parecido entre enviar información y enviar una carta, o un paquete utilizando Seur xD.
Cuando mandamos la información, primero tenemos que construir el paquete y dicho paquete tiene que tener toda la información necesaria, sobre contenido, destino, remite, etc. De manera parecida, si mandamos una carta tiene que tener una dirección, un remite etc.
El paquete no lo construimos nosotros a mano, si no que son los programas y el sistema operativo los que se encarga de construirlo. ¿Como lo hacen? Mediante encapsulamiento, lo que, siguiendo nuestra analogía, seria como embalar el contenido.
Cada vez que nuestros datos, pasan de una capa a otra, cada protocolo añade información, es decir, va encapsulando la información. ¿Que añaden? Información correspondiente a cada protocolo, uno añadirá la dirección a donde se envia, otro a que puerto etc. A esta información se le llama header o cabezera.

La capa física como su nombre indica, se refiere al enlace físico entre los ordenadores y como se envian los datos.
Si nos conectamos usando Ethernet, la información se codifica en pulsos electricos y se envia por el cable Ethernet (uno parecido al cable de teléfonos, pero con la clavija un poco más ancha).
Si es mediante Wi-Fi, los datos se codifican en ondas electro-magnéticas.
Si es por modem, los datos se codifican en sonidos telefónicos que se mandan por la linea telefónica, y si es ADSL, el proceso es el mismo, solo que los datos se envian en otro rango de frecuencias, distintas al que se usa para enviar la voz, aunque se envian por el mismo medio (multiplexación por división de frecuencia).
La capa de enlace de datos se encarga de todo lo que es el control de transmisión usando el medio físico. Algoritmos para evitar colisiones de red, codificar la información (WEP y WPA) etc. Ethernet, 802.11 (nombre técnico del WiFi) tienen los suyos propios. Además, depende de que tipo de conexión usemos, la cantidad de datos que podemos enviar de una sola vez será mayor o menor. Esto es lo que se llama como MTU y que veremos posteriormente. Además también impone el límite de «ancho de banda» es decir, la cantidad de datos que podemos enviar simultaneamente en un segundo, en Ethernet son 100 Mb/s, para 802.11 a/b son 52 Mb/s y unos 20 Mb/s si usamos ADSL de Jazztel por ejemplo. Un detalle, los Mb/s son Megabits, y no MegaBytes.
La capa de red es la que se encarga de controlar a donde van y de donde vienen los paquetes. Seria un poco como la oficina de correos. El protocolo más usado actualmente y el usado en internet es el IP (Internet Protocol). Esto ya si te va sonando menos a chino ¿no?
El protocolo IP (Internet Protocol) asigna a cada ordenador una dirección única en una red, que lo identifica. Maticemos esto de única:
Cuando un ordenador se conecta a una red, su IP tiene que ser distinta a la de todos los demás ordenadores conectados, pero sin embargo, no tiene porqué conectarse siempre usando la misma IP, es más, muchos provedores de internet, nos ofrencen «IP dinamica», es decir, cada vez que nos conectamos tenemos una distinta.
¿Recuerdas que en la capa de enlace de datos hablabamos del MTU? El tamaño máximo que puede alcanzar un paquete, dependiendo del medio físico que se use para transmitirlo. Pues bien, si el tamaño final del paquete sobrepasa dicho valor (que para el caso de Ethernet es 1500 bytes) este protocolo se encarga de dividir el paquete en partes más pequeños).
Sin embargo, la red puede hacer varias operaciones a la vez. Me explico, puedes estar descargando ficheros y chateando a la vez, sin que se tengan que interrumpir las demás operaciones. Esto es gracias a la siguiente capa, la capa de transporte, la cual se encarga de multiplexar la información, es decir, de permitir varias conexiones a la vez.
La capa de transporte controla la manera de hacer llegar los datos al receptor y de dividir los datos en «paquetes». Los dos protocolos más usados en internet son el TCP y el UDP. Pasamos a explicarlo con un ejemplo.
TCP son las siglas de Transmission Control Protocol. Cuando mandamos información no lo hacemos de manera continua, si no que lo hacemos de manera discreta, en forma de pequeños fragmentos llamados paquetes. TCP es el encargado de hacer llegar estos paquetes, en el mismo orden en el cual se emitieron, y que los paquetes son los mismos que los enviados. ¿Como? Dentro de la cabezera que TCP añade al paquete, se envian datos para que el receptor sepa el orden, el llamado sequence number, o numero de secuencia. Para comprobar que el paquete no ha sido alterado, se añade un checksum, una especie de «firma» del paquete. El calculo de este valor es algo complicado, pero si te sientes con ganas de aprender más, puedes aprender como se calcula aqui.
Los datos se envian a traves de la red, y cuando el receptor los recibe, comprueba que no tienen errores usando el checksum, si los tuviera, el receptor los vuelve a pedir. Una vez los tiene, los ordena en función del número de secuencia.
Antes hemos dicho que este protocolo es el que nos permite que haya varias conexiones a la vez… ¿Como lo hace? Facil, mediante el uso de puertos. Si, si, los famosos puertos que hay que abrir para que el emule salga sin antifaz, o para poder jugar online correctamente, estos son. ¿Ves como en el fondo leer esto tiene algo de utilidad?
Si no fuera por este protocolo, cuando nos conectamos a otro pc, «reservamos» la conexión solo para nosotros, y si otros se quisieran conectar, tendrian que esperar a que acabarmos, sin embargo, TCP nos permite mantener distintas conexiones a la vez, siempre y cuando sean a traves de distintos puertos. En total contamos con 2^17 = 65536 puertos. Aunque no te vayas a pensar que gracias a esto podemos mandar datos infinitos, pues la cantidad de datos que podemos mandar simultaneamente, siempre esta sujeta a la limitación del ancho de banda que tenga nuestro enlace de datos.
Otro de los protocolos más usados en internet es el UDP siglas de User Datagram Protocol. Al igual que el TCP se encarga de controlar el modo en el que llega la información, pero este es más «liberal». UDP no controla tanto el orden de llegada de los datos, si no que solo controla que lleguen bien (controlando su checksum). Al igual que TCP también nos permite usar puertos para diferenciar conexiones. Debido a que no controla tanto el orden, suele ser más rapido, y se usa en aplicaciones que no requieren un control tan estricto de los datos, por ejemplo, los juegos. Imagina que en usando UDP envias un mensaje y este al llegar al receptor se recibe en otro orden al que lo enviaste… ¡Sería caótico!
No podemos olvidar otros protocolos como el ICMP. Aunque quizas no hayas oido hablar de el apenas, pues generalmente solamente tiene un uso. Seguro que alguna vez has hecho un PING, para comprobar si tu red funciona, o si un servidor esta disponible, pues la aplicación PING usa este protocolo, el ICMP.

Ahora pasamos a las tres ultimas capas, las cuales suelen estar incluidas en la mayoría de protocolos.
La capa de sesión es la encargada de identificarse en el receptor, para aplicaciones que requieran contraseña, por ejemplo, cuando entramos a un FTP con contraseña etc. Un ejemplo de este protocolo sería el SSH.
La capa de presentación es la encargada de «presentar» los datos, de decir que tipo de datos estamos enviando. Por ejemplo, en un chat, esta capa se encargaría de decir que los datos que estamos enviando son texto, y en este caso, en que codificación estan, por ejemplo, Unicode-8. Si fuese un servidor de streaming de video, nos diría que tipo de video y que codec usa, etc.
La capa de aplicación envia los datos relativos al programa. Por ejemplo, en los juegos online, por ejemplo el Ragnarok Online, cada vez que nos movemos, lo hacemos hacia unas coordenadas. El juego tiene distintos paquetes, unos que indica movimiento, y que van acompañados de las coordenadas, otros que indican que usamos skills y van acompañados de contra quien la hacemos etc. Esto sería la capa de aplicación.

La mayoria de protocolos a nivel de software tienen estas tres capas, por ejemplo, el protocolo MSN.

Protocolo MSN

Como ves, en la parte dedicada a autentificación se indica quien es el emisor y cual el receptor del mensaje.
En la de presentación se envia el tipo de contenido (texto UTF-8) e incluso el tipo de letra y color.
Al final observamos el mensaje que hemos enviado.

Para terminar, decir que, como dijimos en la primera entrega, un protocolo es solo un estandar, una serie de especificaciones a respetar. ¿Quien se encarga entonces de fabricar los paquetes y de añadir los datos necesarios? Normalmente, para las tres primeras capas, se encarga el software. El navegador web se encarga de añadir los datos relacionados con el protocolo HTTP. Para el resto de capas, el encargado es el sistema operativo, ya sea usando la pila TCP/IP para la capa de red y de transporte, o los drivers de controladores para la de enlace de datos. La pila TCP/IP es una parte especial del SO que se encarga de construir los paquetes por nosotros, ahorrando así al programador que tenga que hacer todo este trabajo.
Eso si, cada programador interpreta de manera distinta el estandar, lo que da lugar a algunas pequeñas diferencias en la implementación en los distintos sistemas operativos, estos pequeños detalles son usados por herramientas como nmap para averiguar que sistema esta ejecutando un host.

Bueno pues creo que hasta aquí la segunda entrega del capítulo de redes. Hasta la próxima ^^

3 respuestas to “Tus colegitas de silicio: Redes. Capítulo II”

  1. Otra vez arqeek con sus coleguitas xD tu… tu.. jaja. Tio al leer esto me acordao de mi módem ese que tiraba mas que satanás haciendo surf y de sus sonidicos al conectarse T_T que tiempos aquellos

  2. me ha gustado muchisimo el escrito, me parece que lo pusiste excelente para que todo el mundo lo comprendiera,
    enhorabuena colegita arqeek ^^

  3. @Chia: Todos tenemos un bonito recuerdo de alguna pieza de hardware, yo mismo tengo por hay mi modem, que no tenia drivers para XP pero sin embargo lo hice funcionar a base de reinstalar mucho los de windows 98… Misterios de la informática.

    @charlyalpha: Más o menos de eso se trata, hay muchos textos por la red hablando de redes, casi todos mejores que este, pero mi lema es tecnología comprensible hasta para jesus xDD

    Nos vemos! ^^


Replica a Chía Cancelar la respuesta