Next: Fragmentación
Up: Nivel de Red
Previous: Descarte de
Paquetes Índice
General
Internet es un
conjunto de redes diferentes que comparten una pila de protocolos comunes. Cada
una de estas redes es administrada por una entidad diferente: universidades,
redes académicas nacionales, ISPs (Internet Service Providers), operadores,
empresas multinacionales, etc. Como consecuencia de esto las políticas de uso
son muy variadas.
Técnicamente a nivel de red Internet puede definirse como un conjunto de
redes o sistemas autónomos conectados entre sí que utilizan el protocolo de red
IP. IP es una red de datagramas, no orientada a conexión, con servicio
``best effort'', es decir, no ofrece QoS. La entrega de los paquetes no está
garantizada ya que en momentos de congestión éstos pueden ser descartados sin
previo aviso por los routers que se encuentren en el trayecto.
Figura 28: Encabezado del Paquete
IP.
|
|
En una red IP toda la información viaja en paquetes o datagramas IP. Esto es:
cualquier información de control que tenga que intercambiarse (routing dinámico,
mensajes de error, etc.) y los datos de nivel superior.
El paquete IP (ver figura 28)
tiene dos partes: encabezado y texto. El encabezado tiene una parte fija de 20
bytes y una opcional de entre 0 y 40 bytes, pero siempre es un múltiplo de 4.
Los campos son los siguientes:
- Versión:
- 4 bits que permiten coificar los valores de las distintas versiones de IP.
La versión actualmente es la 4, pero se empezó ya a extender el uso de la
versión 6 con una estructura de paquete diferente a la de la figura.
- IHL:
- 4 bits que especifican la longitud del encabezado, pues éste puede variar
debido a la presencia de campos opcionales. Se codifica en palabras de 32
bits, donde la longitud mínima es 5 y la máxima 15, que equivale a 40 bytes de
información opcional. La longitud del encabezado siempre es un múltiplo de 32
bits, por lo que se puede añadir un relleno al final del encabezado.
- Tipo de Servicio:
- 8 bits. Permite establecer que calidad de servicio requiere el paquete. Se
pueden establecer varios tipos de confiabilidad y velocidad (ej. rapidez en
vez de confiabilidad para aplicaciones como audio o video, confiabilidad para
transferencia de archivos, etc.). Este campo tiene subcampos de importancia:
P (precedencia) son 3 bits de prioridad, un Flag tres bits D, T
y R que permite especificar que importa más Retardo, Throughput o
Confiabilidad. Recientemente, el campo Differentiated Services ha sustituido a
este campo. Su finalidad es implementar QoS en redes IP mediante la
arquitectura denominada Servicios Diferenciados o Diffserv.
- Largo Total:
- 16 bits que especifican la longitud del paquete completo, encabezado
incluido, en bytes.
- Identificación:
- 16 bits. Este campo permite al destino determinar a que paquete pertenece
el fragmento que recientemete ha llegado a él. Está relacionado con la
fragmentación de paquetes.
- DF:
- 1 bit, que indica no fragmentar el paquete.
- MF:
- 1 bit, indica que vienen más fragmentos. Todos los fragmentos del paquete,
salvo el último, tienen este bit en 1.
- Offset del Fragmento:
- 13 bits para indicar a que parte del paquete total pertenece el fragmento
que se está recibiendo.
- TTL:
- 8 bits que permiten descartar un paquete una vez que ha dado un número
excesivo de saltos o ha pasado un tiempo excesivo viajando por la red. Es un
contador regresivo que indica el tiempo de vida restante del datagrama medido
en segundos, de forma que si su valor llega a cero el paquete debe ser
descartado. Esto permite evitar que se produzcan loops y un paquete pueda
permanecer ``flotando'' indefinidamente en la red. Como no es trivial calcular
con precisión el tiempo que un paquete emplea en el tránsito entre dos
routers, en la práctica lo que se hace es restar el TTL en uno por cada salto,
y en el caso de que el datagrama se encuentre durante más de un segundo
esperando en un router, se resta uno por cada segundo de espera. Como los
paquetes casi nunca están más de un segundo en un router, en la práctica este
parámetro funciona como un contador de saltos. En el caso de producirse
fragmentación, el host receptor puede retener datagramas durante varios
segundos, mientras espera a recibir todos los fragmentos. En este caso, el
host restará uno del TTL por cada segundo de espera, pudiendo llegar a
descartar paquetes por este motivo. Los valores de TTL típicos están entre 40
y 64.
- Protocolo:
- 8 bits que especifican a que protocolo de nivel de transporte corresponde
el paquete. La tabla de protocolos válidos y sus correspondientes números son
controlados por el IANA (Internet Assigned Number Authority)la tabla 6
muestra algunos de los posibles valores de este campo. Llama la atención el
valor 4 de la tabla 6
que está reservado para el uso de IP para transportar IP, es decir, al
encapsulado de un paquete IP dentro de otro. Esta técnica permite realizar
ruteo desde el origen de los paquetes encapsulando el paquete en otro dirigido
al nodo intermedio por el que se quiere pasar.
- Checksum:
- 16 bits que sirven para detectar errores en el encabezado del paquete. El
checksum permite evitar al paquete de una alteración en alguno de los campos
del encabezado que pudiera producirse, por ejemplo, por un problema de
hardware en un router. El checksum sólo cubre el encabezado del paquete, no
los datos. El campo checksum se ha de recalcular en cada salto, ya que al
menos el TTL cambia. Notar que en routers con alto tráfico, el recálculo del
checksum supone un inconveniente desde el punto de vista de rendimiento.
- Dirección Fuente:
- 32 bits que corresponden a la dirección IP origen.
- Dirección Destino:
- 32 bits que corresponden a la dirección IP destino.
- Opciones:
- campo de longitud variable que no siempre está soportado en los routers y
se utiliza muy raramente. Fue diseñado para permitir expansiones al protocolo,
experimentos,etc. Las opciones son de tamaño variable, comenzando siempre por
un yte de codificación, y siempre son rellenadas a múltiplos de 4 bytes. Entre
las opciones destacables están Record Route que pide a cada router por
el que pasa el paquete que anote en el encabezado su dirección, obteniéndose
un trazado de la ruta seguida (debido a la limitación a un máximo de 40 bytes
en la parte opcional del encabezado, como máximo pueden registrarse 9
direcciones). Timestamp actúa de manera similar a record route, pero
además de anotar la dirección IP de cada router atravesado se anota en otro
campo de 32 bits el instante en que el paquete pasa por dicho router. El uso
de dos campos de 32 bits aumenta el problema antes mencionado del poco espacio
disponible para grabar esta información. Source Routing permite al
emisor especificar la ruta que debe seguir el paquete hasta llegar a su
destino. Existen dos variantes: strict source routing que especifica la ruta
exacta salto a salto, de modo que si en algún caso la ruta marcada no es
factible por algún motivo se producirá un error. La segunda es loose source
routing donde se dicen los routers por los que debe pasar el paquete, pero se
da libertad a la red para que use otros routers cuando lo considere
conveniente. La limitación en la longitud de las opciones impone un límite
máximo en el número de saltos que pueden especificarse. El uso de los campos
opcionales del encabezado IP tiene generalmente problemas de rendimiento, ya
que las implementaciones de los routers optimizan el código para las
situaciones normales, es decir, para paquetes sin campos opcionales. Las
opciones están implementadas y funcionan, pero lo hacen generalmente de forma
poco eficiente ya que en el diseño del software no se ha hecho énfasis en su
optimización.
Tabla 6: Algunos Valores y Significados del Campo
Protocolo en un Paquete IP
| Valor |
Protocolo |
Descripción |
| 0 |
Reservado |
|
| 1 |
ICMP |
Internet Control Message Protocol |
| 2 |
IGMP |
Internet Group Management Protocol |
| 3 |
GGP |
Gateway-to-Gateway Protocol |
| 4 |
IP |
IP en IP (encapsulado) |
| 5 |
ST |
Stream |
| 6 |
TCP |
Transmission Control Protocol |
| 8 |
EGP |
Exterior Gateway Protocol |
| 17 |
UDP |
User Datagram Protocol |
| 29 |
ISO-TP4 |
ISO Transport Protocol Clase 4 |
| 38 |
IDRP-CMTP |
IDRP Control Message Transport Protocol |
| 80 |
ISO-IP |
ISO Internet Protocol (CLNP) |
| 88 |
IGRP |
Internet Gateway Routing Protocol (Cisco) |
| 89 |
OSPF |
Open Shortest Path First |
| 255 |
Reservado |
|
Subsecciones
Next: Fragmentación
Up: Nivel de Red
Previous: Descarte de
Paquetes Índice
General
Jorge Pezoa N.
2001-06-18