Redes Locales
11. TCP/IP
Introducción
Cuando un usuario, desde su ordenador se conectada a Internet a través de una línea telefónica o una red local , visita alguna página de Web o envía un mensaje de correo electrónico, se realizan un sinnúmero de pequeños procesos que tienen como objetivo conjunto transferir la información deseada y asegurar que dicha transmisión se realice libre de errores.
Durante tal transmisión se utilizan varios protocolos. Al conjunto de estos procolos se les conoce como Conjunto de Protocolos TCP/IP(donde TCP e IP significan, respectivamente, Transmission Control Protocol e Internet Protocol) osea Protocolo de Control para la Transmision y Protocolo de Internet.
TCP/IP agrupa docenas de protocolos, que implementan funciones a todos los niveles de las capas OSI excepto el físico.
Estructura
El modelo de comunicaciones de OSI define 7 capas.
En cambio, TCP/IP utiliza 4. Dichas capas son:
- Aplicación
- Transporte
- Red
- Enlace
Algunos prefieren llamar capa Internet a la capa de red y capa de acceso a la red a la capa de enlace.
La correspondencia entre las capas de TCP/IP y las capas OSI es la siguiente:
- La capa de aplicación de TCP/IP corresponde a las capas de aplicación, presentación y sesión de las capas OSI.
- La capa de transporte de TCP/IP corresponde a la capa de transporte de OSI.
- La capa red de TCP/IP corresponde a la capa de red y también se intersecta con la capa de enlace de OSI.
- Por último, la capa enlace de TCP/IP corresponde a las capas de enlace y física de OSI.
Supóngase que un usuario desea visitar la página http://www.netscape.com/home.html y así se lo indica a Netscape (que corre en la capa de aplicación). Netscape le pedirá a la capa de transporte que cree una conexión de punto a punto con el servidor de Web en la computadora www.netscape.com, la que utilizará para solicitar y recibir la página home.html.
A su vez, la capa de transporte utilizará los servicios de la capa de red (que se encarga principalmente de enviar y recibir paquetes de información como se verá más adelante).
A su vez, la capa de red utilizará los servicios de la capa de enlace, que se encarga de enviar a través de la red local o un ruteador la información de una computadora a otra.
Cada capa tiene funciones bien especificadas que permiten que el proceso completo se lleve a cabo.
Capa de Enlace
La capa de enlace está implementada en el device driver del sistema operativo y en la tarjeta de interfaz que conecta a la computadora con la red. Esta capa tiene a su cargo los detalles de la comunicación en la parte física (hardware) así como garantizar la confiabilidad de ésta. La capa de red le entrega a la capa de enlace paquetes de información llamados datagramas. Cada datagrama contiene el número IP (o dirección IP, el cual es un número de 32 bits) de su destino. La capa de enlace tiene las funciones principales siguientes:
- Convertir los datagramas en tramas ( frames). Esto se debe a que las tarjetas de red requiren que la información que éstas envíen esté encapsulada en forma de tramas.
- Convertir el número IP del destinatario en su dirección física. Cuando una computadora desea enviar una trama de una computadora a otra es necesario que conozca la dirección física de la computadora destinatario (cada tarjeta de red tiene una dirección única, a la que llamaremos dirección física); esto se debe a que a ese nivel, las direcciones IP no son significativas. La traducción de número IP a dirección física se realiza mediante el Protocolo de Resolución de Direcciones ( ARP Address Resolution Protocol). Mediante ARP se evita que las capas superiores requieran conocer direcciones físicas.
- Enviar la información a esta computadora, utilizando el protocolo que la red local especifique o los protocolos SLIP( Serial Line Internet Protocol, Protocolo Internet de Línea Serial), CSLIP( Compressed SLIP, SLIP Comprimido) o PPP ( Point to Point Protocol, Protocolo de Punto a Punto) si se trata de una línea telefónica.
- Y convertir de regreso las tramas recibidas en datagramas para entregarlas a la capa de enlace en el lado del receptor.
Capa de Red
Esta capa es el corazón de Internet. Su función principal es la entrega de paquetes (llamados datagramas) de una computadora fuente a otra destino. Implementa algoritmos para ruteo, para evitar congestionamientos y para interconexión de redes ( puertas y ruteadores). Los servicios que provee son no orientados a conexión.
Toda la información que se transmite a través de Internet son datagramas IP. Esta capa no es confiable, es decir, no se encarga de verificar que un datagrama haya sido recibido o de volverlo a mandar en caso de existir algún error. El protocolo central de esta capa es el IP y realiza las siguientes tareas:
- Recibe de la capa de transporte la información a enviar (en paquetes llamados segmentos) que incluyen la dirección IP del destinatario.
- Encapsula dichos segmentos en datagramas.
- Determina cuál es la ruta que debe seguirse para entregar cada datagrama. IP sólo es capaz de entregar paquetes a computadoras físicamente conectadas en la misma red local. Así, si se desea enviar un datagrama a otra red, será necesario que IP determine cuál es el ruteador o gateway al que deberá enviarle la información. Una vez determinada la dirección de la siguiente computadora a contactar, le entrega a la capa de enlace el datagrama (que incluye la dirección IP de destino).
- Cuando la computara recibe un datagrama, verifica si está destinado para ella. Si es así, lo reensambla en segmentos y lo pasa a la capa de transporte. Si no está destinado para ella, realiza nuevamente la operación descrita en el punto anterior.
Otro protocolo importante de esta capa es el Protocolo de Mensajes de Control de Internet ( ICMP Internet Control Message Protocol) que se encarga de realizar las siguientes funciones:
- Control de flujo.
- Detección de errores en las rutas que siguen los datagramas.
- Verificación de que una computadora esté conectada y su capa de red funcionando correctamente.
Capa de Transporte
La función principal de esta capa es permitir la comunicación directa del remitente a los destinatarios. Consta de dos protocolos: TCP, cuya función principal es permitir comunicación libre de errores tipo orientada a conexión; y UDP ( User Datagram Protocol, Protocolo de Datagramas de Usuario), cuya función principal es permitir el uso directo de datagramas IP. Las funciones de TCP son, principalmente:
- Dividir la información que recibe de la capa de aplicación en segmentos que pasarán a la capa de red.
- Al enviar un segmento inicializa un reloj, en espera de una contraseña (indicando que el mensaje se recibió); si el reloj expira antes que esta última se reciba, reenvía el segmento suponiendo que el segmento se ha perdido.
- Cuando TCP recibe un mensaje, envía al remitente una contraseña confirmando la recepción.
- Implementa algoritmos para verificar que la información recibida fue la misma que la enviada; en caso de que el segmento llegue dañado a su destino, se indica al remitente del hecho y este último lo reenvía. Puesto que IP no garantiza el orden de llegada de los segmentos que envía, TCP debe reordenarlos si es necesario.
- Implementa algoritmos de control de flujo.
- Da la impresión a una aplicación de tener una línea directa en ambos sentidos ( full duplex) a través de la cual se realiza la comunicación. TCP otorga a la capa de aplicación una comunicación libre de errores punto a punto (de fuente a destino) que aparenta ser orientada a conexión (aun cuando siempre se implemente mediante servicios no orientados a conexión); a esta conexión se le conoce como conexión TCP.
TCP define un nivel de direccionamiento, llamado puerto, que permite distinguir entre diferentes conexiones que se estén realizando simuláneamente. Cada puerto es identificado con un número de 16 bits. Su uso es claramente ejemplificado por el modelo cliente-servidor. Para que el cliente pueda conectarse con el servidor, es necesario que el primero sepa dónde encontrar al segundo; para resolver este problema, varios números de puertos están reservados para algunas aplicaciones (correo electrónico, telnet, ftp, web, etc.)
Los números de puerto son asignados por IANA ( Internet Assigned Number Authority, Autoridad Asignadora de Números en Internet).
Esta agencia reserva números a los servicios que puede ofrecer un servidor.
El número de puerto del servicio ftp es el 21, el de telnet es 23, el de Web es el 80. En general, los números de puerto entre 1 y 255 los asigna la IANA. Un cliente de Web sabe que para conectarse con un servidor (también de Web), debe establecer una conexión TCP al puerto 80 de la máquina en cuestión.
Capa de Aplicación
La capa de aplicación, como su nombre lo dice, es donde se encuentran las aplicaciones utilizadas por el usuario. Algunas aplicaciones son tan comunes que se decidió estandarizarlas, entre ellas se encuentran acceso remoto (telnet y rlogin), transferencia de archivos (ftp), correo electrónico (SMTP), Web (HTTP), etc. Direcciones IP El número IP o dirección IP es una dirección empleada, principalmente, para distinguir de manera única a una computadora en Internet.
Los números IP constan de 32 bits, normalmente expresados con cuatro números decimales separados por puntos, representación conocida como notación de punto decimal. Cada uno de estos números representa un byte del número IP; por ejemplo: el número IP en notación punto decimal 255.97.58.1, representa al número IP 11111111 01100001 00111010 0000001 en notación binaria. Un número IP está compuesto de 3 partes: un identificador del tipo de clase, número de la red local y número de computadora dentro de la red local.
Tipo de Clase
El tipo de clase permite identificar cuántos bits se utilizarán para el número de red local y cuántos para identificar a la computadora. Si la dirección empieza con un cero, entonces se trata de una dirección de clase tipo A, que reserva 7 bits para el número de red y 24 para el de computadora; si inicia con los primeros dos bits igual a 10, entonces se trata de una dirección de clase B, con 14 y 16 bits, respectivamente, para número de red y de computadora; y finalmente, si inicia con los tres primeros bits igual a 110, se trata de una red tipo C que reserva 21 bits para el número de red y 8 para el de computadora.
Red Clase A
7 bits 24 bits
0 identificador de red identificador de computadora
Red Clase B
14 bits 16 bits
10 identificador de red identificador de computadora
Red Clase C
21 bits 8 bits
110 identificador de red identificador de computadora
La clase A es para redes que pueden tener hasta 16,777,214 computadoras; las redes de clase B pueden tener hasta 65,534 computadoras y las redes de clase C tienen menos de 254 computadoras. Todo número IP debe pertenecer a alguna de estas clases. El rango de los números IP que pertenecen a cada clase es:
Clase A 0.0.0.0 127.255.255.255
Clase B 128.0.0.0 191.255.255.255
Clase C 192.0.0.0 255.255.255.255
Número de Red Local
Cada red local debe tener un número diferente al del resto de las redes conectadas a Internet; para garantizar que así sea, su asignación está a cargo del Centro de Información de la Red Internet ( Internet Network Information Center), conocido como InterNIC.
Número de computadora
en la Red Local Cada computadora debe tener un número único dentro de la red local, tarea de la que se encarga el administrador de la misma. Dependiendo del tipo de clase, el número será de 8, 16 ó 24 bits. Ninguna computadora podrá utilizar el número cero (todos los bits apagados), ni el último número (todos los bits prendidos). Esto se debe a que el número cero está reservado para identificar a la red como un conjunto. El último número es utilizado para identificar a todas las computadoras de una red.
La dirección 129.97.0.0, es una dirección tipo B, con 16 bits para número de computadora en la red local. Puesto que estos 16 bits están todos en cero, esta dirección representa a la red completa. En cambio, 129.97.0.1 identifica a la computadora número 1 de la red 129.97.0.0. La dirección 204.191.103.131 identifica a la computadora 131 de la red 204.191.103.0 que es clase C.
Subredes
Una vez que una organización ha obtenido una dirección (tipo A, B o C), puede a su vez particionarla como mejor le convenga. La partición se realizará para adaptarla a la topología de las diversas redes locales que compongan la red de la organización. Cada una de estas redes locales que conforman una red conectada a Internet se le conoce como subred.
La parte del número IP que correspondería al identificador de computadora en la red local se utiliza para identificar a la subred y la computadora dentro de esta subred. En el datagrama IP una bandera indica si la red local está formada por subredes y de esta manera el software correspondiente sabe cómo proceder. Para esto es necesario saber cuántos bits del número de computadora son utilizados para identificar a una subred y cuántos son designados para el identificador de la computadora en si. Supóngase, por ejemplo, que se tiene una red local tipo C, y por lo tanto el identificador de computadora en la red local consta de 8 bits, que a su vez se dividirá en un identificador de subred y un identificador local de computadora en la subred.
El identificador local de subred puede constar desde 2 hasta 6 bits. Si se deciden utilizar n bits para el identificador de la subred, se podrán definir hasta 2n-2 redes (esto se debe a que ni la subred 0, ni la que tiene todos los bits prendidos son direcciones de subred válidas). Los bits restantes se utilizarán en la misma forma en que ya se definió antes para el número de computadora en la red local.
Si tenemos la red local (tipo C) 203.191.105.0, y deseamos dividirla en dos subredes, deberemos utilizar 2 bits para el identificador de la subred. Así, tendremos las direcciones de subredes 203.191.105.64, y 204.191.105.128 (204.191.105.0 y 204.191.105.192 son direcciones de subred inválidas).
Cada una de estas redes puede a su vez tener de 1 hasta 62 computadoras (la dirección con todos ceros es de nuevo el identificador de la subred, y la que tiene todos unos es la que identifica a todas las computadoras en la subred).
Cuando se configura una computadora conectada a Internet, se utiliza la máscara de subred( subnet mask), que es un número de 32 bits en los cuales se indica con unos la parte que corresponde al identificador de la red y de la subred, y con ceros la parte que corresponde al identificador de la computadora en la subred.
En nuestro caso, puesto que sólo 6 bits son utilizados para el identificador de computadora en la subred, la máscará de subred será: 11111111 11111111 11111111 11000000, que en notación de punto decimal corresponde a 255.255.255.192
