INTRODUCCIÓN AL PROTOCOLO IPv4

Vemos la necesidad de realizar esta entrada del blog, debido a que el 90% de las personas reprobaron el Quiz de 10 preguntas sobre el header IPv4 que lanzamos hace unos días. Así que vamos a explicar de manera breve e introductoria, el protocolo IPv4 y los campos de su header. Con esta explicación esperamos que puedan responder correctamente las preguntas del Quiz.


Capa de Red

Comencemos la explicación analizando la capa de Red. La tarea de esta capa, es proporcionar los caminos a través de los cuales debe viajar la información desde un dispositivo de origen hasta un dispositivo de destino. La capa de Red logra esta tarea a través de las funciones de encapsulación/desencapsulación, direccionamiento y enrutamiento. Para el enrutamiento se utilizan diferentes protocolos como OSPF, EIGRP y RIP. Para el direccionamiento se utilizan los protocolos IPv4 e IPv6.

Proceso de encapsulación

MTU
Imagen 1. Encapsulación

En la imagen 1 podemos ver el proceso de encapsulación con los respectivos PDUs. Los datos son generados en las capas superiores, en estas capas el PDU lleva la denominación de datos. Los datos son entregados a la capa de Transporte, la capa de Transporte añade su header encapsulando los datos recibidos, y ahora el PDU se denomina segmento. El segmento es entregado a la capa de Red donde es encapsulado con un header, en esta capa el PDU se denomina paquete. El paquete es enviado a la capa de Enlace de datos donde es encapsulado con un header y un trailer de algún protocolo de la capa 2, en esta capa el PDU se denomina trama. Finalmente la trama es enviada a la capa Física donde el PDU lleva la denominación de bits. En cada capa del modelo de red, trabaja un protocolo diferente que realiza diversas tareas para el cumplimiento de la comunicación entre 2 dispositivos. Vamos a asumir en esta oportunidad, que en la capa de red se encuentra trabajando el protocolo IPv4.

Protocolo IPv4

El protocolo IPv4 se encuentra definido en el RFC 791. En ese documento pueden encontrar todo lo referente a IPv4.
La función principal del protocolo IPv4, es encargarse del direccionamiento de los dispositivos en una red de manera que pueda existir comunicación entre esos dispositivos.

Características generales

El protocolo IPv4 tiene 3 características generales:

  • Protocolo Connectionless

  • El protocolo IPv4 no se encarga de establecer una conexión previa con el dispositivo al cual desea enviar los paquetes.

    MTU
    Imagen 2. Topología routers

    En la imagen 2, si el router R1 quiere enviar paquetes al router R2, simplemente los envía sin previo aviso, el protocolo que se encarga de establecer una conexión previa con el dispositivo de destino, es TCP en la capa de Transporte.

  • Protocolo de mejor esfuerzo «Best Efford»

  • IPv4 no tienen mecanismos que le permitan garantizar que un paquete haya sido recibido de manera correcta por el dispositivo de destino. En la imagen 2, si un paquete que envía el router R1 al router R2 se pierde por cualquier motivo, al protocolo IPv4 no le interesa ni tampoco tiene los mecanismos para volver a enviar ese paquete.

  • Protocolo independiente del medio físico

  • Al protocolo IPv4 no le interesa si se envían sus paquetes a través de fibra óptica, a través de cables de cobre o a través de medios inalámbricos, esa es la tarea de la capa 2.

    Header IPv4

    Para el cumplimiento de sus tareas, el protocolo IPv4 necesita ciertos datos, esos datos son almacenados en su header. El header del protocolo IPv4 lo vemos en la imagen 3.


    MTU
    Imagen 3. Header IPv4

    Tamaño header IPv4

    Lo primero que debemos saber es que el header IPv4 tiene un tamaño mínimo de 20 bytes hasta un máximo de 60 bytes. El tamaño del header depende del campo llamado “OPTIONS” que es de tamaño variable, ese campo puede crecer hasta 40 bytes haciendo un total de 60 bytes para todo el header IPv4, sin contar los datos de Aplicación y Transporte. Cuando el campo Opciones no lleva datos, el header IPv4 se mantiene en el mínimo valor de 20 bytes.

    Versión

    Como su nombre indica, este campo nos proporciona la versión del protocolo IP al cual pertenece el paquete, tiene un tamaño de 4 bits. Si haríamos una captura de tráfico, veríamos en el campo versión, el valor decimal “4” haciendo referencia al protocolo IP versión 4.

    Header Length/Tamaño del header

    Tiene un tamaño de 4 bits y nos proporciona el tamaño del header IPv4 en palabras de 32 bits o 4 bytes, ya sabemos que suena complicado. Hagamos un par de ejemplos para explicar ese concepto. Supongamos que vemos el valor decimal de 5 en el campo «Tamaño del header», para encontrar el tamaño real del header, tenemos que aplicar la siguiente formula:

    Tamaño header = Valor del contenido Header Length * 32 bits

    En este caso tendríamos que el tamaño del header es igual 5 * 32 bits que nos daría un valor real del tamaño del header de 160 bits o lo que es igual a 20 bytes, 1 byte son 8 bits. Si se dan cuenta el valor de 20 bytes es el tamaño mínimo del header del paquete IP, lo que significa que no podemos ver en este campo header length un valor más pequeño que 5. Ojo que este campo solo contempla el tamaño del header IP, sin contar los datos encapsulados como vemos en la imagen 4.

    MTU
    Imagen 4. Tamaño del header

    DSCP/ECN

    Este campo se utiliza para calidad de servicio (QoS), originalmente se denominaba Type of Service, tiene un tamaño de 8 bits, de los cuales los primeros 6 bits son llamados DiffServ Code Point (DSCP) y los últimos 2 bits son llamados Explicit Congestion Notification (ECN).

    Total Length o Packet Length

    Este campo nos indica el tamaño total del paquete en bytes. Este tamaño considera el header IP más el header TCP mas los datos de la capa de aplicación como vemos en la imagen 7.

    MTU
    Imagen 5. Tamaño del paquete

    Este campo tiene un tamaño de 16 bits, por lo tanto, el máximo valor decimal que podemos obtener con 16 bits es de 65535, lo que quiere decir que el tamaño máximo de un paquete IP es de 65535 bytes.

    Identification, Flags y Fragment Offset

    Estos campos son utilizados en el proceso de Fragmentación que lo explicamos en esta otra entrada del blog.

    Time To Live

    Cuando estudien los protocolos de enrutamiento, se van a dar cuenta que una configuración errónea puede provocar que un paquete circule de manera infinita en una red sin llegar al dispositivo de destino, esto se llama loop. El objetivo de este campo Time To Live es detener los loops de enrutamiento. A este campo se introduce un valor, el valor recomendado es de 64, este número ira disminuyendo en una unidad, por cada router que atraviese, cuando el campo TTL del paquete llegue a «0», el router que disminuyo el valor a 0 elimina el paquete y envía un mensaje de error ICMP «time exceeded» al dispositivo que originó el paquete.

    Protocol

    Este campo nos indica el protocolo que se está utilizando en la capa superior. Tiene un tamaño de 8 bits. Los números más comunes que encontraremos en esta campo se pueden ver en la imagen 6.

    MTU
    Imagen 6. Números de protocolos

    Checksum

    Tiene un tamaño de 16 bits y ayuda a verificar la integridad del header IP. Es decir que los datos que se encuentran en el header IP no hayan sido alterados o modificados en su viaje. El Checksum se calcula en cada salto hasta llegar al dispositivo de destino.

    Destination Address/Source Address

    Estos campos son los más importantes para el estudio de CCNA y tienen un tamaño de 32 bits. En el campo Source Address se introduce la dirección IPv4 del dispositivo que inicia la comunicación, y en el campo Destination Address se introduce la dirección IPv4 del dispositivo de destino con el cual se desea entablar la comunicación.

    Options

    Tiene tamaño variable, desde 0 hasta 40 bytes. El mayor uso que se le da a este campo es para realizar Loose Source Routing, Stric Source Routing, Timestamp y Record Route que son opciones que pueden ser invocadas con el comando PING.

    Padding

    Este campo es simplemente un relleno que aumenta bits para que el header termine en un límite de 32 bits. Recuerden que el campo «Header Length» nos proporciona un valor del tamaño del header en palabras de 32 bits, por lo cual el header no puede tener otros tamaños que no sean múltiplos de 32 bits o 4 bytes, y gracias a este padding se logra cumplir esa restricción.

    NOTA: respecto a los protocolos que se encargan del direccionamiento, les tiene quedar claro que IPv4 y IPv6 no son los únicos, pero son los protocolos más usados, es muy difícil que hoy en día vean los otros protocolos en la vida real, sin embargo si quieren leer un poco acerca de un par de ellos, pueden investigar sobre el protocolo Connectionless-mode Network Service CLNS y IPX Internetwork packet Exchange.


    Esperamos que el presente artículo haya sido de su agrado. Una vez terminen esta entrada, vayan al quiz de 10 preguntas y respondan correctamente =).

    Quiz: Preguntas IPv4
    Clase IPv4 CCNA: Introducción a la Capa de Red y al protocolo IPv4

    NUESTROS CURSOS Foros Introducción a la Capa de Red y al protocolo IPv4

    Viendo 2 entradas - de la 31 a la 32 (de un total de 32)
    • Autor
      Entradas
    • #38469
      AlvaroM
      Superadministrador

      Hola Mauricio!

      Continuando con tus consultas.

      Respecto a la pregunta 1.

      Es correcto, todo depende del campo «Options», de acuerdo al tamaño de ese campo, el tamaño del header será más grande. Podrías tener un valor de 11 en el header lenght, todo dependiendo nuevamente de qué es lo que se está utilizando en el campo opciones. https://www.rfc-editor.org/rfc/rfc791.html en la página 15 puedes ver algunas de las opciones existentes en el momento de la implementación del protocolo.

      Respecto a la pregunta 2.

      Los RFC (Manejados por la IETF y otras entidades) son los documentos que tienen las definiciones de los cambios existentes en la gran parte de los protocolos utilizados en Internet, y obviamente también las definiciones de los nuevos protocolos que son publicados. Respecto al cambio que consultas, eso lo ves detallado en el RFC 2474: https://datatracker.ietf.org/doc/html/rfc2474

      Saludos! =)

      #38545
      AlvaroM
      Superadministrador

      Hola Mauricio

      Continuando con tus consultas.

      Respecto a la pregunta 3, muchos dispositivos no reducen el campo TTL cuando reenvían un paquete; por ejemplo, si tu tráfico atraviesa un firewall ASA, por defecto tu no veras que se hizo una reducción en el campo TTL cuando tu tráfico salga del dispositivo. Así que en realidad si tu no controlas la red, no hay una garantía de saber a ciencia cierta de cuantos dispositivos atravesó tu paquete. De todas formas, uno de los comandos que buscas es «traceroute», este lo analizamos más adelante en las clases; después existe otra posibilidad de realizar la misma tarea con el ping extendido utilizando la opción de «Record» en el IOS, esto permite registrar los saltos a nivel IP que va tomando tu paquete, sin embargo, solo puedes registrar hasta 9 saltos.

      Respecto a la pregunta 4, si generas paquetes de 65535 bytes, no vas a poder enviarlos a través de la red, ya que estos deben tener un tamaño de acuerdo al MTU de la capa de Enlace de datos; por lo tanto, si generas esos paquetes, esos paquetes van a ser fragmentados, y en síntesis como mencionas, la comunicación se hace más lenta. Hablamos sobre ello en otros cursos, y también puedes leer algo en nuestro blog: https://netwgeeks.com/fragmentacion-ipv4/

      Respecto a la pregunta 5, puedes ver el tamaño de MTU de las tecnologías de capa 2 en el enlace anterior; respecto a la fibra óptica, recuerda que eso es SOLO un medio físico, ahí no tenemos MTU, el MTU es un concepto de la Capa de Enlace de datos y no así de la capa física. Vas a aprender más sobre esto en el módulo 2, así que no te preocupes.

      Atento a cualquier comentario.

      ¡Saludos! =)

    Viendo 2 entradas - de la 31 a la 32 (de un total de 32)
    • Debes estar registrado para responder a este debate.

    ¿QUIERES ESTAR AL TANTO DE NUESTAS PUBLICACIONES?

    Deja tu Email y enterate de los nuevos cursos, ofertas, tutoriales y todo sobre NetworkGeeks.

    1 comentario en “INTRODUCCIÓN AL PROTOCOLO IPv4

    1. Gracias, el Quiz se encuentra en este enlace: https://netwgeeks.com/preguntas-ipv4/

      Saludos!

    Los comentarios están cerrados.