ASPECTOS DEL NIVEL DE RED
Se puede decir que la capa de red es la última de
bajo nivel que está relacionada con la transmisión de datos punto a punto. En
el nivel de red interactuan varios dispositivos de red que se encargan de dirigir
los paquetes en la subred hasta su destino final.
Servicios
La capa de red ofrece servicios a la de transporte
por medio de la interfase red/transportey cumple con estos objetivos:
- Los servicios son independientes del la tecnología de
la subred
- El nivel de transporte es aislado de las
particularidades de la cantidad,heterogeneidad y distribución física de
las subredes.
- Existe un mecanismo de direccionamiento homogéneo sin
importar la heterogeneidad de las LANs y WANs involucradas.
La industria telefónica propone que el servicio
ofrecido a la capa de transporte sea de tipo orientada a la conexión y la
comunidad de Internet propone que sea de tipo no orientada a la conexión, cada
facción apoyada por su propia experiencia. Lo importante de esto reside en que
dependiendo de la elección se tendrá el control de flujo y chequeo de errores
en la capa de red o en la de transporte, lo cual se traduce en que la parte
dura la hará el proveedor de la subred o el usuario en sus aplicaciones.
Si combinamos un servicio orientado a la conexión
en el nivel de transporte con una subred no orientada a la conexión, tendremos
el chequeo de errores y control de flujo en la capa de transporte y una capa de
red bastante sencilla y, lógicamente, eficiente.
La comunidad de Internet propone la suite de
protocolos TCP/IP para ofrecer servicios orientados a la conexión y confiables
(TCP), así como no orientados a la conexión y no confiables (UDP), mientras que
la industria telefónica ofrece ATM con servicios orientados a la conexión y
confiables.
La combinación ineficiente resulta cuando la
comunidad de Internet utiliza TCP/IP sobre una subred con ATM porque se duplica
el control de flujo y chequeo de errores.
Circuitos virtuales y
subredes
Un circuito virtual es un enlace que se establece
entre dos entes de una subred. Está asociado a los servicios orientados a la
conexión y su analogía es un cable que se tiende entre los dos entes. En la
vida real, este circuito se establece como una ruta negociada entre los
dispositivos de la subred y permanece mientras el par de entes no negocien su
terminación. Por otro lado, si los paquetes de un enlace viajan por rutas
distintas se establece un servicio no orientado a la conexión y a los paquetes
se les denomina "datagramas" (datagrama por su analogía a telegrama).

Ruteo
Como djimimos, la labor principal de la capa de
red es dirigir por el mejor camino a los paquetes desde un orígen a su destino.
La decisión de cuál es el mejor camino puede basarse en varios factores como
son:
- El número de enrutadores o entes intermedios de la
subred que se deben visitar (saltos).
- El ancho de banda de las líneas de transmisión.
- La saturación de cada línea de transmisión.
- La calidad de cada línea de transmisión (por decir,
número de decibeles).
- El costo por usar una línea de transmisión específica.
Dependiendo del usuario, algunos pueden preferir
dar pocos saltos, mientras otros prefieren líneas con pocos errores, otros
desean líneas baratas, etc.
Los aparatos que deciden qué rutas van a seguir
los paquetes o datagramas se denominan "enrutadores". Cuando son
encendidos, envían mensajes especiales (generalmente de tipo broadcast) bajo un
protocolo de enrutamiento para determinar qué caminos tiene disponibles
localmente y cuáles tienen los enrutadores vecinos. También pueden intercambiar
las rutas conocidas de vecinos con otros vecinos, creando así tablas de
enrutamiento dinámicas. El administrador de la red también puede insertar rutas
a mano creando rutas estáticas.
Los algoritmos de ruteo entonces pueden ser
dinámicos o estáticos. Entre los algoritmos estáticos tenemos:
- La ruta más corta: Se basa en el número de saltos y
algún valor de ponderación por ruta.
- Algoritmo de inundación: Cada paquete recibido es
enviado por todos los caminos de salida existentes.
- Inundación selectiva: Cada paquete recibido se envía por
una colección de caminos lógicos (orientados correctamente, ubicados hacia
un destino específico, etc.).
- Algoritmo de flujo ponderado: Se toma en cuenta la
saturación de la línea al mismo tiempo que su ancho de banda.
Para comprender mejor los algoritmos y protocolos
de enrutamiento dinámicos, necesitamos comprender dos conceptos que son:
- Problema de conteo al infinito: Periódicamente, los enrutadores reciben
las tablas de enrutamiento de sus vecinos y actualizan las propias. Por
ejemplo, si para alcanzar el destino D se requiere pasar por los
enrutadores A y B, el enrutador local sabe que para alcanzar A el precio
es 3, y para alcanzar B otros 2 puntos, y de B al destino D otros 5
puntos, de manera que el precio total es (3+2+5) = 10. Si cada Q unidades
de tiempo B le envía sus tablas a A, y luego de otras Q unidades A se las
envía al enrutador local, podemos decir que en general si un enrutador
está a N saltos las tablas locales se actalizan en NQ unidades de tiempo.
Inicialmente, si deseamos alzanzar un destino para el que no hay una ruta,
se marca el precio con un valor de "infinito" y se envía un
error de destino inalcanzable. Por otro lado, si existía una ruta pero el
destino está apagado, entonces el enrutador más cercano debería actualizar
su tabla marcando ese destino con precio de "infinito", pero
sucede que su vecino, que no sabe que el destino es físicamente
inalcanzable, le envía una tabla diciendo que puede alcanzar ese destino
con un precio que llamaremos "S". Así, en NQ unidades de tiempo todos
los enrutadores calcularán que para alcanzar el destino fallido (DF) en
(S+ precio local) puntos. Sin embargo, el enrutador vecino a DF no lo
puede alcanzar y otra vez recibe la tabla del vecino con un precio de S'
> S. Inmediatamente cree que puede alcanzar DF por esa ruta y actualiza
su propia tabla con un precio S'+ precio local y otra vez en NQ unidades
de tiempo todos los enrutadores reciben esas tablas. Todo el proceso
anterior se repite por muchos NQ unidades de tiempo hasta que alcanzan un
precio que se iguala con el valor de "infinito", lo cual es
demasiado lento y provoca que los enrutadores traten de crear enlaces
hacia DF desperdiciando el tiempo.
- El truco del horizonte dividido: Se ha intentado evitar el problema del
conteo al infinito y hasta el momento no se ha encontrado una solución
100% efectiva, sin embargo, analicemos uno de tales algoritmos llamado
"horizonte dividido". La solución consiste en evitar que un nodo
más distante a DF le regrese una ruta a un nodo más cercano a DF. Para lograr
eso, un enrutador envía como precio infinito la ruta hacia el enrutador
por el cual recibe paquetes de un destino específico. Así, cuando se
origina un DF, el enrutador adyacente A marca su precio como infinito.
Luego, en Q unidades su vecino B le envía sus tablas pero como los
paquetes de DF eran recibidos a través de A, esa ruta estará marcada como
precio infinito y cuando A le pase las tablas a B, B las actualizará
apropiadamente con precio infinito y a lo más en NQ unidades de tiempo la
nueva ruta con precio infinito será conocida en toda la subred. La falla
de este algoritmo sucede en topologías específicas. Por ejemplo, si del
enrutador A se derivan dos enrutadores vecinos B y C, es claro que B y C
no le pasan la ruta hacia DF al enrutador A, pero entre B y C si hay
intercambio de la ruta hacia DF. Así, cuando DF se presenta, A tendrá su
precio como infinito y se lo pasa a B y C. Pero si hay una diferencia de
tiempo en la actualización de B y C, puede suceder que C actualiza más
rápido y B todavía tiene una ruta hacia DF con precio X, por lo tanto es
factible que C actualice sus tablas con esa ruta vieja con precio X' = X +
precio local. A su vez, B recibe el precio infinito de A, pero recibe
"de rebote" la ruta vieja de C con precio X' y actualiza su ruta
hacia DF con precio X'' = X' + precio local. Y así pueden estarse pasando
esas rutas y el problema del conteo al infinito existe otra vez.
Regresando a los algoritmos de ruteo, en el tipo
de los algoritmos dinámicos tenemos:
- Protocolo de Información de Enrutamiento: (RIP) o algoritmo de vector de distancia,
puede tomar en cuenta el número de saltos, el retraso calculado o algún
otro factor. Cisco y otros fabricantes usan una versión mejorada de este
algoritmo. Se usa pricipalmente para intercambiar rutas entre enrutadores
y nodos activos (computadoras) de la red. Cada enrutador envía (a su
vecino) una tabla que contiene destinos y "precio" de alcanzar
cada uno de esos destinos. Así, un enrutador particular puede saber su
precio para alcanzar un destino específico sumándole al precio recibido su
propio precio por alcanzar el enrutador vecino.
- IGRP
(Interior Gateway Routing Protocol): Se utiliza para intercambiar rutas
entre enrutadores dentro de un mismo conjunto lógico.
- BGP
(Border Gateway Protocol): Se utiliza para intercambiar rutas entre
enrutadores que están en el límite de un conjunto lógico.
- Enrutamiento por el status de enlace: El ruteo RIP básico se uso en WANs hasta
1979 porque no consideraba el ancho de banda de los enlaces y fue sustituido
por el de estatus del enlace y variaciones. La idea principal de este
nuevo algoritmo consiste de 5 pasos:
1. Descubrir los vecinos
y registrar sus direcciones de red.
2. Medir el precio para
llegar a cada enrutador vecino.
3. Construir un mensaje que
contenga todo lo aprendido.
4. Enviar el paquete de
conocimiento a los enrutadores vecinos.
5. Calcular la ruta más
corta hacia cada enrutador alcanzable.
- Enrutamiento Jerárquico: Si una red cuenta con una gran cantidad de
enrutadores, será muy ineficiente y tal vez imposible que cada enrutador
tenga una tabla con todas las rutas y que registre toda la topología,
además de que esto consumiría mucha memoria, también consumiría el ancho
de banda de la red en enviar y recibir tablas. Por eso se ideó el enrutamiento
jerárquico, en el cual se agrupan varios enrutadores y sólo uno del grupo
intercambia rutas con el representante de otros grupos. Por ejemplo, si
una red tiene 64 enrutadores, en lugar de que cada enrutador tenga una
lista de 64 entradas, podemos agruparlos de 8 en 8 y entonces cada
enrutador tendrá una tabla con 8 entradas en esta jerarquía de dos
niveles. Para redes más grandes se pueden hacer jerarquías de mayor
profundidad. La desventaja de este esquema es que se pueden pasar por alto
rutas más eficientes porque se está restringido las rutas recibidas por el
representante.
- Enrutamiento para nodos móviles: Supongamos un representante de ventas que
se lleva su computadora portátil en un viaje por tren, y que el tren
ofrece el servicio de conectarse a la red a través de un protocolo de
ruteo móvil. El tren irá cambiando de posición entrando y saliendo de
ciudades y estados. El enrutamiento ya no es tan fácil porque la dirección
de la computadora portable permanece fija pero la ciudad o estado tiene
direcciones diferentes. En este caso la solución es que el mundo se divide
en zonas de cierta área y en cada zona existe un "agente".
Cuando el tren entra a la primera región, se registra la dirección de la
computadora portátil con ese agente indicando su dirección original, la
dirección de su agente original AO y cierta información de seguridad. El
agente de registro AR se comunica con el agente original AO diciéndole que
hay un miembro de su región de visita. El AO verifica con la información
de seguridad la identidad de la computadora portátil CP y lo acepta
enviando un mensaje de reconocimiento a AR. El AR entonces acepta a CP y
todos los datos que CP quiera enviar son recibidos por AR y los envía
dentro de un paquete encapsulado a AO, el cual los recibe y desencapsula,
enviando los datos reales a su destino como si hubieran sido originados en
la región de AO. Al mecanismo de encapsular los paquetes y que éstos sean
liberados en un punto remoto se le llama "tunneling".
- Enrutamiento de mensajes broadcast: Existen aplicaciones que necesitan enviar
datos a todos los nodos de una red, lo cual constituye un mensaje
broadcast. El primer problema que se presenta es determinar hasta qué
grado debe viajar el mensaje broadcast. En segundo lugar está cómo la va a
hacer el enrutador para tomar un mensaje broadcast y expandirlo a sus
vecinos:
1. Se puede expandir el
mensaje por el árbol mínimo de expansión (obtención difícil)
2. Se puede expandir por
inundación (requiere mecanismo de paro)
3. El mensaje original
puede contener una lista de destinos múltiples (preferible)
4. El mensaje se puede
expandir por un árbol de sendero inverso (preferible)

- Enrutamiento de mensajes multicast: Existen aplicaciones que necesitan enviar
paquetes a un grupo de nodos que tienen en común cierta característica,
por ejemplo, participar en una videoconferencia. En ese caso, el enrutamiento
se puede llevar a cabo con árbol de expansión podado cuando se usa
enrutamiento de estado de enlace y un árbol de sendero inverso cuando se
usa enrutamiento RIP. Para evitar la inclusión de algoritmos muy complejos
en Internet, se determinan grupos de trabajo que usan un número de red
específico. Por ejemplo, para un servicio de videoconferencia se usa la
dirección 224.0.0.0, cuando un nodo quiere participar, debe copnocer la
dirección IP (por ejemplo, 140.148.4.100) y ahi se conecta el nodo, colectando
los paquetes que vayan dirigidos a la dirección 224.0.0.0 por parte del
emisor 140.148.4.100.
Congestionamiento de la red
El congestionamiento se refiere a que la capacidad
de la subred en cuanto a almacenar datos que están pendientes de ser entregados
excede a los recursos disponibles tales como memoria para colas, el ancho de
banda de los enlaces, el número de enlaces y otros.
Los datos pendientes se pueden acumular debido a
que la cantidad de datos que los emisores intentan enviar excede a la capacidad
de la subred en cuanto al ancho de banda, o bien que la caida de enlaces o un
mal control de flujo provocan la congestión. Recordemos que que el control de
flujo tiene que ver con emisores y destinatarios que trabajan a velocidades
diferentes y que requieren cierta sincronización en cuanto a la velocidad en
que procesan datos en la red.
El control de congetionamiento de la red tiene dos
vertientes de solución: estáticas y dinámicas. Las estáticas establecen que el
buen diseño de la red y las dinámicas en una retroalimentación de la subred.
Para la solución dinámica, se realizan tres pasos
en general que son:
1.
Monitoreo de la red: Si se incrementa el valor del número de paquetes
descartados porque ya no hay buffers de almacenamiento, el tamaño de las colas
de almacenamiento, el número de paquetes retransmitidos que no son por
colisiones, el tiempo promedio de entrega, entonces hablamos de
congestionamiento.
2. Enviar
la información de congestión al lugar indicado: Cada enrutador puede asociar a
los paquetes de enrutamiento o al procolo del nivel de red algunos bits que
indiquen el estado del monitoreo, para que sus vecinos modifiquen el enrutado
de pauqtes y se eviten congestiones de manera dinámica.
3. Ajustar
la operación del sistema apropiado: Una vez que un elemento de la subred o un
emisor o receptor recibe información de monitoreo indicando que hay un problema
de congestión, éste debe tomar alguna acción para detener o disminuir la
congestión, tal como enviar sus paquetes por una ruta alterna o tomar una
acción de control de flujo (disminuir el número de paquetes por segundo
enviados).
Tabla de políticas
generales en la congestión
El primer paso para lidiar con la congestión de
tráfico consiste en tratar de evitarla. Se pueden realizar algunas acciones en
los niveles de enlace de datos, red y transporte como se indica en la tabla
siguiente.

Firewalls
La inclusión de redes privadas dentro de Internet
y la necesidad de mantenerlas protegidas contra ataques al mismo tiempo ha dado
cabida a la instalación de mecanismos de protección para incrementar la
seguridad en dichas redes. La idea general de incluir una red privada en
Internet es la de tener acceso a las herramientas e información de esta red de
redes, a la vez que aprovechar su alcance para llegar a miembros alejados de
una misma corporación.
Para lograr un acceso más o menos amigable a
Internet sin perder la seguridad interna se ha acuñado el concepto de Firewall
(muro de fuego), cuya función principal es la de levantar un obstáculo para la
transmisión y recepción de información de y hacia la red privada o protegida.
El obstáculo (firewall) sólo puede ser vencido conociendo una o varias claves
de acceso pre-establecidas por el administrador del firewall
Las soluciones firewall generalmente consisten de
una parte de software y otra de hardware. El hardware puede ser desde una
computadora personal con funciones de pasarela (gateway) en hardware o
software. La parte de software consiste de programas que filtran los paquetes
dejando pasar sólo aquellos que cumplen las políticas de seguridad de la red protegida,
o bien de programas que convierten una petición de servicio hacia un formato de
seguridad.
Entre los servicios más comunes de un firewall
podemos encontrar:
- Servicios Trampolín (proxy): Por la naturaleza de los nodos internos de
la red protegida, éstos no pueden darse a conocer directamente en redes
externas, por lo cual le piden a un agente proxy en el firewall que les
tramite el servicio hacia el exterior, de esta manera el nodo interno es
invisible al mundo externo.
- Traducción de direcciones: Ciertas redes privadas comenzaron a tomar
direcciones de IP sin haberlas pedido y registrado formalmente llegando a
crecer tanto que es muy difícil cambiarlas ahora a direcciones válidas.
Para obtener servicios de Internet, necesitan convertir dinámicamente sus
direcciones inválidas a direcciones válidas, lo cual es una función del
firewall.
- Túneles o Redes Virtuales Privadas: Muchas empresas desean usar Internet como
medio de enlace entre sucursales de la corporación. Para esto, se ubican
firewalls en cada sucursal y éstos encriptan la información y la
transmiten así a través de Internet, siendo desencriptada en el firewall
destino y entregada al nodo interno destino, creándose de esta manera una
red virtual privada y un medio de transmisión por túnel en Internet.
- Autentificación de nodos remotos y móviles: Cuando un nodo interno o externo
(pudiendo ser éste fijo o móvil) desea un servicio hacia el interior de la
red protegida o hacia el exterior de la red, se debe conectar a un nodo
predeterminado que está bajo el dominio del firewall, el cual le pedirá un
nombre de usuario y una o más claves para tramitar el servicio requerido
originalmente. Generalmente la tabla de usuarios y claves del firewall
sólo son accesibles en el firewall mismo a través de su consola, para
mayor protección.
ATM
La capa llamada ATM del modelo ATM es lo más
cercano a las características de la capa de red del modelo OSI, aunque muchos
expertos consideran que la capa ATM es la de ligado de datos. Aceptemos la
controversia y procedamos a ver esta capa como la de red.
La capa ATM es orientada a la conexión, y es
novedosa porque no incluye el uso de reconocimientos porque fue diseñada para
trabajar con medios físicos de transporte libres de errores como la fibra
óptica. Además, ATM en general se usa para enviar información en tiempo real,
lo cual hace peor el re-enviar una celda dañada que ignorarla.
ATM se basa en la creación de circuitos virtuales
unidireccionables, de manera que para crear un canal virtual full duplex crea
dos circuitos con el mismo identificador lógico, y en dichos canales las celdas
siempre se envían y llegan en orden. Además, los canales virtuales pueden
agruparse y tratarse como una unidad llamada sendero virtual.
Formato de las celdas de
ATM
En la capa de ATM se localizan dos interfases: la
UNI (User Network Interface) y la NNI (Network to Network Interface). La
primera define el límite entre un nodo y la red de ATM y la segunda se refiere
a la relación entre dos conmutadores (switches) de ATM. En ambos casos las
celdas consisten en encabezados de 5 octetos de longitud y una sección de datos
(payload) de 48 octetos

Servicios de ATM
Para la versión 4.0 de ATM la comunidad se dio
cuenta de qué era lo que el estándard podía transmitir y qué era lo que el
público deseaba transmitir, por lo cual se modificó el estándard para
satisfacer mejor a los usuarios y se escogieron los servicios más deseables
para que los fabricantes produjeran dispositivos más ad hoc.

CBR es útil para ofrecer los servicios que
típicamente resuelve el sistema telefónico, aunque no hay control de errores,
ni congestionamiento ni ningún otro procesamiento extra. RT-VBR garantiza que
la aplicación obtendrá el ancho de banda requerido y es útil en servicios de
tiempo real como las videoconferencias y el despliegue de presentaciones tipo
filme. NRT-VBR es igual que el anterior, excepto que el protocolo puede tener
un retraso en la entrega tal como en el servicio de correo electrónico. ABR
está enfocado a ofrecer un ancho de banda base y si la aplicación requiere más
entonces hará su mejor esfuerzo para incrementarla. UBR no promete ningún ancho
de banda base ni control de flujo ni chequeo de errores, lo cual es útil para
enviar paquetes IP y no incrementar la sobrecarga en el nivel de transporte. Si
la red está congestionada, los paquetes son descartados sin avisar, pero si hay
ancho de banda sobrante, se entregan la mayor cantidad de paquetes posibles.

Calidad del servicio en ATM
Para efectos de establecer una especie de control
de calidad en los servicios (CBR, ABR, UBR, etc.), se han definido una serie de
parámetros que el cliente y el proveedor pueden negociar de acuerdo a la tabla
siguiente.

La calidad del servicio se define con parámetros
de envío de celdas por un lado y en la entrega de las mismas por el otro. Por
ejemplo, el cliente podría negociar que el CMR sea a lo más 1 celda por
segundo, es decir, que solamente se entregue una celda en un destino equivocado
por segundo, tomando en cuenta que tal vez el PCR sea 150,000 celdas por
segundo.
El protocolo IP
Internet como ya hemos visto es una red de redes y
se expande a nivel mundial, su protocolo base es TCP/IP, y fue diseñado desde
el principio para trabajar entre redes. La manera general en que trabaja TCP/IP
es que la aplicación le entrega una cadena de datos al protocolo de transporte
( TCP o UDP ) el cual se encarga de contactar a la capa de red (IP) y
entregarle datagramas que pueden ser hasta de 65 Kb de longitud (aunque la
mayoría de las tarjetas de red manejas una longitud máxima de 1500 bytes
denominada Maximum Transmission Unit). La capa de red IP transmite los
datagramas, tal vez divididos en unidades más pequeñas (fragmentos) hasta el
destino, haciendo su mejor esfuerzo porque los paquetes lleguen a su destino.
En el destino la capa IP ensambla los fragmentos y entrega los datagramas a la
capa de transporte quien a su vez se los entrega a la aplicación.
Un paquete de IP tiene una estructura compuesta de
una parte de encabezado y otra de datos. El encabezado consta de 20 octetos
fijos y de una parte de opciones cuyo tamaño es variable (de cero o más
octetos).

- Campo Versión: Permite saber si un datagrama es de una misma versión
de IP o si necesita alguna conversión cuando se están usando versiones
diferentes.
- Campo longitud de encabezado: Permita saber el tamaño total del
encabezado que consta de 20 bytes fijos y hasta 40 bytes de opciones.
- Campo tipo de servicio: Permite especificar a qué servicio pertenece este
paquete o cuál se requiere (confiable, rápido, con prioridad, enrutado,
etc.).
- Campo de longitud total: Indica la longitud del datagrama incluyendo
encabezado y datos.
- Campo de identificación: Indica el número de datagrama, lo cual permite
ensamblar fragmentos de un mismo datagrama en la capa IP.
- Bit de D: Significa Do not Fragment (no fragmentar), y obliga que los
enrutadores no fragmenten el datagrama porque el nodo destino será incapaz
de ensamblarlo de nuevo. Esto se aplica por ejemplo cuando un aparato hace
su proceso de inicialización (boot) por medio del protocolo BOOTP o de
TFTP.
- Bit de M: Significa More Fragments, y es un bit que está encendido en todos
los fragmentos que componen un datagrama, lo cual le está diciendo a la
capa IP que se está recibiendo un datagrama en fragmentos. El último
fragmento de un datagrama tiene este bit apagado.
- Campo de desplazamiento: Indique cuál fragmento es éste de los 8192 (o menos)
que componen un datagrama completo.
- Campo de tiempo de vida: Se inicializa a un número entre 1 y 255 que se
supone son segundos aunque en la práctica se usa para indicar saltos entre
enrutadores. cada vez que un fragmento cruza por un enrutador este campo
se decrementa en una unidad, o en varias unidades si permaneció suficiente
tiempo en una cola. Esto permite que los paquetes cuyo tiempo de vida
llega a cero sean descartados y no vaguen por la red indefinidamente.
- Campo de protocolo: Indica si el protocolo de transporte es TCP o UDP u
otro.
- Campo de chequeo: Permite calcular si el encabezado llegó íntegro.
Consiste en ir sumando (usando aritmética de complementos a unos) cada 16
bits del encabezado y sacarle al resultado su complemento a unos, lo cual
debe ser igual a este campo.
- Campos IP Origen e IP Destino: Indican la dirección IP única a nivel
mundial del nodo origen y nodo destino. Las direcciones IP son
administradas a nivel mundial por el NIC y para poder usarlas se necesita
solicitarlas y registrarlas. Existen 5 categorías principales: Las
direcciones que comienzan con el número 1 a 127 son clase A, las de 128 a
191 son clase B, las de 192 a 223 son clase C, las de 224 a 239 son clase
D (multicast) y de 240 a 247 son clase E (para usos futuros).

Algunos números de IP son especiales. Aquellos Ips
cuyo número de red sean puros ceros indican que el destino es la red local. Si
el destino consiste de un número con puros unos, quiere decir que el destino
son todos los nodos de una red. Si el destino comienza con el número 127.x.y.z,
los paquetes no son puestos en la red sino que se procesan en el mismo nodo
como si fueran paquetes que llegaron y su propósito es hacer pruebas.
- Campo de opciones: Estos octetos se dejaron sin especificar con el
objeto de darles significado cuando el protocolo tuviera más necesidades.
Se han especificado algunas opciones como son paquetes con seguridad,
rutas de entrega estrictas o sugeridas, registro de rutas y registro de
tiempos de travesía.
Algunas notas acerca de IP
Versión 6
El crecimiento de Internet tan enorme aunado al
desperdicio provocado por las división en sólo 5 clases ha redundado en que el
número de direcciones IP disponibles actualmente se acerque a cero.
Otro problema importante es el surgimiento de
protocolos nuevos ( como ATM, Frame Relay, etc.) donde no es tan natural la
unión con redes típicas (legacy networks).
Para solucionar los dos problemas anteriores y
otros más, el Internet Engineering Task Force (IETF), que es un organismo que
trabaja para que Internet sea más eficiente, convocó a todas las empresas e
instituciones a proponer soluciones en 1990, y para diciembre de 1992 se tenían
ya siete y después de discutirlas se llegó a proponer un nuevo estándard
llamado Simple Internet Protocol Plus o IPv6. Se diseñó tomando en cuenta toda
la experiencia reunida en IP y se plantearon los siguientes objetivos a
resolver:
- Soportar miles de millones de nodos con direcciones de
16 bytes.
- Simplificar las funciones de enrutamiento.
- Incluir mecanismos de seguridad (autentificación y
privacía).
- Incluir mecanismos para tener calidad de servicio y
tiempo real.
- Apoyar el servicio de "multicast"
permitiendo la definición de rangos.
- Apoyo a los nodos móviles sin cambiar su dirección.
- Permitir al protocolo evolucionar haciéndolo
extensible.
- Permitir a los protocolos antiguos y modernos
coexistir.
IPv6 no es compatible con la versión 4 de uso en
1997, aunque lo es con TCP, UDP, ICMP, OSPF, IGMP, BGP y DNS.
Lo que tenemos que esperar en el corto plazo es la
forma de migrar nuestras redes actuales hacia nuevos esquemas de
direccionamiento, nuevas tarjetas de red y el surgimiento de nuevas versiones
para programar en red y aplicaciones nativas sobre IPv6.