El datagrama IP (IPv4). IP Datagram

     El datagrama IP es la unidad básica de transferencia en una red IP. El datagrama consiste de una cabecera IP y de un campo de datos y esta encapsulado en la trama de nivel de enlace con una longitud máxima (MTU) de 1500 bytes para ethernet.


     IP puede llevar a cabo la fragmentación y re-ensamblaje de sus datagramas. La longitud máxima de un datagrama IP es de 65.535 bytes. También se establece que todas las redes o hosts deben ser capaces de soportar como mínimo datagramas de 576 bytes sin fragmentación.

     Cada fragmento de un datagrama debe tener una cabecera, que será una copia de la cabecera del datagrama original. Un fragmento es tratado como un datagrama IP normal mientras es transportado a su destino. Sin embargo, si uno de los fragmentos se pierde, se da por perdido el datagrama completo, al ser descartados el resto de fragmentos por el host destino. Es decir, si se pierde un fragmento se debe retransmitir el datagrama completo. La retransmisión no es tarea del protocolo IP, sino de los protocolos de nivel superior. 

     El datagrama IP se compone de una cabecera y un campo datos. Veamos el formato de la cabecera IP, con una longitud mínima de 20 bytes:

Datagrama IP-IP Datagram

     Versión – Campo de 4 bit. Contiene la versión del protocolo IP.

     Longitud – Campo de 4 bit. Indica la longitud de la cabecera IP, en palabras de 32 bits, sin incluir el campo de datos. Por defecto 0101 (5x32bits=20bytes).

     Tipo de servicio (TOS) – Campo de 8 bit. Indica la calidad de servicio solicitada por el datagrama IP. TOS se encuentra descrito en la RFC 791. La RFC 1583 describe TOS Application Routing. El campo TOS ha sido redefinido como DSCP (Differentiated Services Code Point) que consta de los 6 primeros bit y dos sin establecer.

     Este campo se divide en los siguientes campos:

-          Preferencia. (3 bit) Indica la naturaleza y prioridad del datagrama. Los bits y sus posibles valores:
            •  000 (0) - Routine
            •  001 (1) – Priority 
            •  010 (2) - Immediate
            •  011 (3) - Flash
            •  100 (4) - Flash Override
            •  101 (5) - Critical
            •  110 (6) - Internetwork Control
            •  111 (7) - Network Control
 -          TOS. (4 bit) Especifica el valor del tipo de servicio:
            • 1000  - El paquete solicita minimizar la demora
            • 0100  - El paquete solicita maximizar la tasa de transferencia
            • 0010  - El paquete solicita maximizar la fiabilidad
            • 0001  - El paquete solicita minimizar el coste
            • 0000  - Servicio normal
 -          MBZ. Bit de comprobación
     Longitud total – Campo de 16 bit. Contiene la longitud total del datagrama, cabecera y datos.

     Identificación – Campo de 16 bit. Es un valor único asignado al datagrama por el emisor que permite identificar a que datagrama pertenece el fragmento.

     Flags – Campo de 3 bit. Contiene los valores (0, DF, MF).
      • 0 – Reservado, no se utiliza
      • DF – Dont_Fragment. Si es 0 indica que se permite la fragmentación. Si es 1 indica que no se permite.
      • MF – More_Fragments. Si es 0 indica que es el último fragmento del datagrama. Si es 1 indica que hay más fragmentos.
     Offset de fragmentación – Campo de 13 bit. Indica el desplazamiento medido en unidades de 8 bytes (64 bit). Se utiliza para facilitar el re-ensamblaje del datagrama completo. Contiene un valor entre 0 y 65536 (216).  Si es el primer o único fragmento el valor es 0.

     TTL (Time To Live) – Campo de 8 bit. Indica el tiempo en segundos que un datagrama puede ‘permanecer’ en la red. Se utiliza para prevenir que los datagramas no estén viajando para siempre. El valor puede ir desde 0 a 255, pero generalmente se inicializa a 64. Cada router que procesa el datagrama resta 1 al valor. Si el valor llega a 0 el paquete es descartado.

     Protocolo – Campo de 8 bit. Indica el protocolo de alto nivel al que IP debe entregar el datagrama. Entre algunos de los valores que puede tomar este campo tenemos:

      • 1: ICMP (Internet Control Message Protocol)
      • 2: IGMP (Internet Group Management Protocol)
      • 3: GGP (Gateway-to-Gateway)
      • 4: IP (IP in IP (encapsulation))
      • 5: ST (Stream)
      • 6: TCP (Transmission Control Protocol)
      • 7: CBT (Core Based Trees)
      • 8: EGP (Exterior Gateway Protocol)
      • 9: IGP (Interior Gateway Protocol)
      • 10: BBN-RCC-MON (BBN RCC Monitoring)
      • 17: UDP (User Datagram Protocol)
      • 18: MUX (Multiplexing Protocool)
      • 27: RDP (Reliable Data Protocol)
      • 28: IRTP (Internet Reliable Transaction Protocol)
      • 45: IDRP (Inter-Domain Routing Protocol)
      • 46: RSVP (Reservation Protocol)
      • 47: GRE (Generic Routing Encapsulation)
      • 48: MHRP (Mobile Host Routing Protocol)
      • 50: ESP (Encapsulating Security Payload)
      • 51: AH (Authentication Header)
      • 54: NARP (NBMA Address Resolution Protocol)
      • 55: MOBILE (IP Mobility)
      • 88: EIGRP (Enhanced Interior Gateway Routing Protocol)
      • 89: OSPF (Open Shortest Path First)
      • 94: IPIP (IP-within-IP Encapsulation Protocol)
      • 95: MICP (Mobile Internetworking Control Protocol)
      • 97: ETHERIP (Ethernet-within-IP Encapsulation)
      • 98: ENCAP (Encapsulation Header)
      • 103: PIM (Protocol Independent Multicast)
      • 112: VRRP (Virtual Router Redundancy Protocol)
      • 113: PGM (PGM Reliable Transport Protocol)
      • 115: L2TP (Layer Two Tunneling Protocol)
      • 118: STP (Schedule Transfer Protocol)
      • 121: SMP (Simple Message Protocol)
      • 131: PIPE (Private IP Encapsulation within IP)
      • 132: SCTP (Stream Control Transmission Protocol)
      • 133: FC (Fibre Channel)
      • 137: MPLS-in-IP (Multiprotocol Label Switching in IP)
      • 139: HIP (Host Identity Protocol)
    
     Checksum – Campo de 16 bit. Control de la información contenida en la cabecera. Si el checksum de la cabecera no concuerda se descarta el datagrama.

     Dirección IP origen – Campo de 32 bit. Dirección IP del host que envía el datagrama.

     Dirección IP destino – Campo de 32 bit. Dirección IP del host destino del datagrama.

     Opciones IP – Tenemos hasta 40 bytes adicionales (10x32 bit) para opciones. Es un campo opcional de longitud variable. El campo opciones contiene 1 octeto de tipo, un octeto de longitud y un número variable de octetos para opciones. Veamos un esquema de este campo:

Datagrama IP-Opciones IP-IP Datagram - IP options

    • Fc (Flag copy). Este campo de 1 bit indica si el campo opción es copiado (1) o no (0) cuando es datagrama es fragmentado.
    • Class. Campo de 2 bit que puede tomar los siguientes valores:
          • 0. Control
          • 1. Reservado
          • 2. Depuración y medición
          • 3. Reservado
    • Número. Campo de 5 bit que puede tomar los siguientes valores:
          • 0: Final de lista de opciones. El bit de Fc se establece a 0. No hay campo de longitud o datos.
          • 1: No operation. El campo Class tiene el valor 0, no se establece el campo Fc y no hay campo de longitud o datos.
          • 2: Security. El campo Class tiene el valor 0, se establece el campo Fc y la longitud es de 11 octetos. Los códigos de seguridad podéis verlos en la RFC 791.
          • 3: Loose source routing. El campo Class tiene el valor 2 y se establece el campo Fc. El emisor del datagrama especifica que routers y en que orden debe atravesar el datagrama. Puede atravesar otros no indicados por el camino.
          • 4: Internet time stamp. El campo Class tiene el valor 2 y no se establece el campo Fc. Longitud del campo de datos variable. Cada router que atraviesa el datagrama añade su IP y código de tiempo.
          • 7: Record route. El campo Class tiene el valor 0 y no se establece el campo Fc. Cada router que atraviesa el datagrama añade su dirección IP.
          • 9: Strict source routing. El campo Class tiene el valor 0 y se establece el campo Fc. Campo datos de longitud variable. Similar a Loose source routing pero con la diferencia de que debe a travesar los routers especificados y no otros (falla si los routers no están directamente conectados).    
    • Longitud. Campo de 8 bits. Indica la longitud en octetos de las opciones, incluytendo los campos tipo y longitud.
    • Datos de opciones. Campo que contiene datos relevantes a la opción especificada.
     Relleno – Si se utiliza una opción, es datagrama es relleno con octetos todo a 0s hasta el siguiente límite de 32 bit.

     Datos – Los datos contenidos en el datagrama.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.