fragmentação de pacotes udp para soquetes brutos

Acompanhamento da perguntafragmentação de pacotes para soquetes brutos

Se eu tiver um soquete bruto implementado como tal:

  if ((sip_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0)
      {
    cout << "Unable to create the SIP sockets."<< sip_socket<<" \n";
    return -3;
      }

   if ( setsockopt(sip_socket, IPPROTO_IP, IP_HDRINCL, &one, sizeof(one)) == -1)
      {
   cerr << "Unable to set option to Raw Socket.\n";
   return -4;
      };  

como posso definir oipHdr-> fragment_offset (16 bits, incluindo sinalizadores de 3 bits) se eu tiver um pacote de tamanho 1756 (não incluindo o cabeçalho IP)?
Preciso preparar dois pacotes, um do tamanho 1480 e outro do tamanho 276 e, em seguida, colocar cabeçalhos IP nos dois pacotes?

Alguém pode apontar para um código de exemplo para isso?

questionAnswers(1)

yourAnswerToTheQuestion