Publicado el 1 comentario

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

    • Este debate tiene 31 respuestas, 14 mensajes y ha sido actualizado por última vez el hace 11 meses por AlvaroM.
    Viendo 15 entradas - de la 1 a la 15 (de un total de 32)
    • Autor
      Entradas
    • #10850
      AdminNG
      Superadministrador
      #17192
      DiegoAv
      Participante

      BUENAS NOCHES : TENGO UNA DUDA CON LA PREGUNTA 9. ¿Cuántos bits tiene una dirección IPv4? , ESO DE DONDE LO SACAMOS DEL HEADER? NO ENTIENDO DE DONDE SALE 32 BITS.
      MUCHAS GRACIAS

      #17198
      AlvaroM
      Superadministrador

      Hola Diego!

      Buenas noches, como mencionamos a partir del minuto 33, los campos «Source Address» y «Destination Address» del HEADER IPv4 tienen un tamaño de 32 bits… dentro de estos campos se almacenan las direcciones IP de origen y destino que tienen los paquetes cuando salen de un dispositivo en particular… no te preocupes que en esta siguiente clase: https://netwgeeks.com/topic/1-8-estructura-direccion-ipv4-parte-1-conversion-binario-decimal/ ya explicamos el porqué de 32 bits… dale una mirada y esta duda debería quedar totalmente disipada!

      Atento a tus comentarios.

      Saludos cordiales!

      #18868
      daniel Pinaud
      Participante

      buenos dias, como un pc sabe la ip de destino cuando se forma el paquete IP, si estoy en la capa de aplicacion y envio un correo a otro correo en que momento especifico el pc obtiene la direccion de destino ipv4 , entiendo que en la capa de red se tiene la ip origen y destino (esta no se como la sabe) luego en la capa 2 con la tabla arp se comienza a poblar esta tabla con las direciones ipv4 y su mac asociada, esa parte la entiendo,, tambien entiendo si la ip destino no esta en la red se envia por defecto a el gateway que obiamente la conoce, pero si hay 4 pc en una red lan y nunca han hecho conexcion ninguno de ellos y le acabo de enviar un correo a otro pc en mi misma red lan, como se la ip de destino

      #18875
      AlvaroM
      Superadministrador

      Hola Daniel!

      Buena pregunta, en realidad tienes que entender que este tema de «cómo se conoce la dirección de destino» se da a nivel aplicativo. Es decir cuando alguien desarrolla un determinado programa, en el código de la aplicación ya viene detallado a que dirección IP se debe comunicar un dispositivo. En algunos casos se debe configurar este dato en la aplicación de tu computadora (no aplica a servicios web).

      Por ejemplo, cuando tu abres Spotify, automáticamente recibes desde Internet las canciones y sugerencias de artistas entre muchas otras cosas no?… tu en ningún momento definiste la IP para solicitar esas canciones, esto es porque la aplicación ya está programada para comunicarse con la IP del servidor de Spotify para obtener todos los datos que te muestra el aplicativo.

      Respecto a tu consulta sobre el correo electrónico, en el caso de aplicaciones como Outlook, Zimbra o alguna similar, tu NO estas recibiendo el correo electrónico directamente en TU computadora, tu aplicativo de tu computadora es el que se está comunicando con el servidor de correo de manera interna… el aplicativo es el que ya está programado o configurado para comunicarse con la IP del servidor de correo de manera que pueda «obtener» los correos electrónicos que están destinados a tu cuenta y así tú los puedas ver en tu computadora. Si tu aplicas algún tipo de restricción entre la comunicación de tu IP con la IP del servidor de correo, NO vas a poder recibir los correos electrónicos aunque tengas comunicación con las otras PCs de tu red interna que te están enviando correos electrónicos. Y esto ocurre en la gran mayoría de las aplicaciones.

      En el caso de la navegación WEB se utiliza el protocolo DNS para obtener la dirección IP del servidor web que aloja la página web.

      Espero que ahora quede clara la idea!

      Atento a tus comentarios! =)

      • Esta respuesta fue modificada hace 3 años, 9 meses por AlvaroM.
      #20205
      oscar Ivan
      Participante

      Hola estimado Alvaro.

      En esta ocasión me surge la duda acerca del campo Header Lenght, el campo tiene un tamaño de 4 bits. pero no entiendo porque se utiliza 32 bits o 4 bytes como lo indicas para hacer el calculo del tamaño del header, nos indicas algo relacionado con palabras de 32 bits o 4 bytes pero no entiendo el concepto. De antemano muchas gracias por tu tiempo.

      #20226
      AlvaroM
      Superadministrador

      Hola Oscar!

      El campo Header Lenght tiene un tamaño de 4 bits, con esos 4 bits tú puedes expresar el tamaño de TODO el header IPv4 en palabras de 4 bytes o 32 bits (8 bits = 1 byte).

      Podrías tener todas estas combinaciones con 4 bits

      Binario Decimal
      0000 = 0
      0001 = 1
      0010 = 2
      0011 = 3
      0100 = 4
      0101 = 5
      0110 = 6
      0111 = 7
      1000 = 8
      1001 = 9
      1010 = 10
      1011 = 11
      1100 = 12
      1101 = 13
      1110 = 14
      1111 = 15

      Esto quiere decir que el número (decimal) que tengas almacenado en ese campo header lenght debes multiplicarlo por 4 para obtener el tamaño real del header IPv4 en bytes. El término «palabra» se usa en arquitecturas de computadoras, no te compliques con ese término… de manera simple, la «palabra» significa una agrupación de bits que pueden ser manejados por un procesador.

      Para hacerlo más sencillo, podríamos expresarnos de la siguiente manera… «el campo header lenght almacena el tamaño del header IPv4 dividido entre 4».

      Entonces, el mínimo valor permitido que puedes tener en ese campo es 5, ese valor lo multiplicas por 4… y te da 20 bytes que llegaría a ser el tamaño real del header IPv4.

      Espero que ahora quede claro el panorama.

      Atentos a tus comentarios!

      Saludos cordiales.

      #20377

      Que tal.
      Mucha teoria en estos capitulos.
      Espero en las practicas aterrizar lo visto aqui.

      #20379
      AlvaroM
      Superadministrador

      Hola Edgar bienvenido al foro! =)

      Recuerda que el curso está orientado a obtener la certificación CCNA. Se tocan los capítulos necesarios que te pide la certificación y se toca la parte práctica que te pide la certificación. De hecho toda la teoría que se aprende NO la vas a ver en la parte práctica, la mayoría sí pero no toda, por ejemplo de QoS vemos un poco de teoría pero no se ve la parte práctica, de VSS y Stacking vemos un poco de teoría pero no se ve la parte práctica, de 802.1X se ve teoría pero no parte práctica y así… para bien o para mal, así ha estructurado el material Cisco.

      Por otro lado, consideramos que estos temas iniciales son vitales para la parte práctica, sin conocer la conversión binario a decimal/VLSM/Subnetting sería imposible definir las IPs a utilizar en nuestros dispositivos… creemos que NO tiene mucho sentido ver práctica en este punto sin tener las bases necesarias para entender lo que se hace, podríamos enseñar a configurar una computadora, podríamos enseñar a configurar una IP en un dispositivo, pero eso no tiene mucho sentido si no se sabe que es lo que se está configurando.

      Para finalizar, no te preocupes que tienes mucha práctica por delante, e inclusive un curso entero de Packet tracer donde SOLAMENTE tienes prácticas.

      Estoy atento a tus comentarios.

      SAludos cordiales!

      • Esta respuesta fue modificada hace 3 años, 10 meses por AlvaroM.
      • Esta respuesta fue modificada hace 3 años, 10 meses por AlvaroM.
      #20736
      Fernando Moreno
      Participante

      Hola Álvaro,

      dices que se verá mas adelante pero, si en la capa de transporte el protocolo TCP se encarga de segmentar los datos que sobrepasan el tamaño máximo, que en el caso de utilizar el protocolo ethernet en capa 2, es de 1500 bytes menos 20 de la cabecera IP y 20 de la cabecera TCP, ¿Por qué en la capa de red se utiliza la fragmentación dependiendo otra vez del tamaño máximo que permita el protocolo de capa 2?

      Gracias

      #20786
      AlvaroM
      Superadministrador

      Hola Xopo!

      Bueno, en primera instancia tienes que tener en cuenta que la comunicación de TCP es entre el dispositivo que inicia la comunicación y el dispositivo al cual están destinado los datos ¿no es cierto? … por lo tanto, entre esos 2 dispositivos pueden existir decenas de routers, switches, firewalls, etc. Esto quiere decir que tus segmentos TCP transportados, van a viajar a través de diferentes enlaces de capa 2 que pueden tener diferentes MTUs, lo ideal sería que tus segmentos viajen a través de redes Ethernet que mantengan su MTU de 1500 bytes, en este caso no haría falta la fragmentación… sin embargo en la vida real puede no ser así, puede ser que en el primer salto desde tu computadora hacia un router utilices la tecnología Ethernet (1500 bytes), y que después tengas un enlace de capa 2 donde el MTU es menor… entonces que pasa en esos casos?… ¿cómo transportar una trama de 1500 bytes a través de un enlace que solo te permite transportar supongamos …600 bytes?… en estos casos lo único posible a realizar es la fragmentación. IP va agarrar todo el paquete y lo va dividir en partes más pequeñas de manera que puedan ser transportados por el segundo enlace.

      El MSS que define el tamaño el segmento TCP en el dispositivo inicial, solamente toma en cuenta el MTU de la interface de capa 2 LOCAL, es decir solamente te sirve para tu primer salto hacia el primer dispositivo en el camino al destino final, TCP no toma en cuenta los otros dispositivos que puedan existir en el camino al dispositivo final y que puedan tener otros tamaños de MTU.
      En la vida real, se trata de evitar la fragmentación a toda costa, ya que es un proceso que consume bastantes recursos. En la actualidad existen tecnologías como PMTU que se encargan de analizar cuál es el MTU más pequeño en todo el trayecto al destino final, y de acuerdo a ese MTU se crea el segmento TCP de manera que no pueda existir fragmentación en ningún punto de la red.

      Si gustas acá tenemos una entrada de un blog donde hablamos más a detalle sobre este tema: https://netwgeeks.com/fragmentacion-ipv4/

      Espero haberte ayudado con mi respuesta.

      Estoy atento a tus comentarios.

      Saludos cordiales.

      #22576

      1.7. Introducción a la Capa de Red y al protocolo IPv4

      1. ¿Cuáles son las funciones de la capa de Red? (2 opciones)
      Enrutamiento X
      Direccionamiento X
      Transporte seguro de los datos por la red
      Control de flujo
      Control de congestión
      Establece sesiones entre los dispositivos
      2. El PDU que se utiliza en la capa de red se denomina…
      Paquete X
      Trama
      Bits
      Datos
      Segmento
      Datagrama
      3. ¿Cuál es el tamaño mínimo del header IPv4?
      20 bytesX
      20 bits
      40 bytes
      40 bits
      8 bytes
      8 bits
      0 bytes/bits
      4. ¿Cuál es el tamaño máximo del header IPv4?
      20 bytes
      20 bits
      60 bytes X
      60 bits
      40 bits
      40 bytes
      5. ¿Cuál sería el tamaño del header IPv4 si tenemos el valor decimal «5» en el campo «header length»?
      5 bytes
      0 bytes
      50 bytes
      40 bytes
      20 bytes X
      25 bytes
      6. ¿Cuál sería el tamaño del header IPv4 si tenemos el valor decimal «15» en el campo «header length»?
      60 bytes X
      40 bytes
      20 bytes
      15 bytes
      5 bytes
      7. ¿Cuál es el tamaño máximo que puede tener un paquete IPv4?
      20 bytes
      60 bytes
      65534 bytes
      65534 bits
      65535 bytes X
      8. ¿Cuál es el campo del header IPv4 que se encarga de detener los loops de enrutamiento?
      Header Length
      TTL X
      Checksum
      IP source
      DSCP
      ECN
      9. ¿Cuántos bits tiene una dirección IPv4?
      20
      32 X
      64
      128
      16
      40
      10. ¿Cuál es el tamaño de los campos Options y Padding del header IPv4?
      Variable X
      20 bytes
      40 bytes
      40 bits
      0 bytes
      Ninguna de las opciones
      11. ¿Cuáles son las características del protocolo IPv4? (3 opciones)
      Protocolo connectionless X
      Protocolo connection-oriented
      Protocolo best-efford X
      Protocolo de recuperación de errores
      Protocolo independiente del medio X
      Protocolo dependiente del medio

      #22587
      AlvaroM
      Superadministrador

      Hola Jhon

      Tienes alguan consulta en particular?

      Estamos atentos a tus comentarios.

      #24097
      Javier Madrigal
      Participante

      Hola Alvaro!,

      Con respecto a la pregunta 7 considero que la respuesta correcta es 60 bytes, porque 65535 bytes se refiere al máximo valor de 16 bits y no al tamaño máximo que puede tener un paquete IPv4. En el video se dijo que el máximo valor de un paquete es de 60 bytes y el mínimo de 20 bytes. Podrías por favor aclararme esta esta duda? Muchas gracias y saludos.

      #24098
      AlvaroM
      Superadministrador

      Hola Javier!

      No nos confundamos entre el tamaño del paquete con el tamaño del HEADER del paquete, son cosas diferentes. El tamaño máximo del HEADER del paquete IP efectivamente llega hasta 60 bytes, pero el tamaño del PAQUETE IP hace referencia al tamaño del header del paquete IP + header de capa de transporte + datos de aplicación. El tamaño del CAMPO «PACKET LENGHT» del HEADER IP tiene 16 bits… en esos 16 bits tu expresas el tamaño del PAQUETE IP en BYTES… con 16 bits el valor máximo que puedes tener es de 65535, por lo tanto el tamaño máximo de paquete que puedes tener es de 65535 bytes.

      Espero que ahora quede claro, de todas formas esto se explica en el minuto 23:26.

      Atento a tus comentarios.

      Saludos cordiales.

    Viendo 15 entradas - de la 1 a la 15 (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.