2017-08-03 15 views
3

J'utilise Net :: RawIP pour envoyer des paquets avec des drapeaux TCP spécifiques. Y a-t-il un moyen de définir le drapeau CWR? TCP protokey "RES2" définit le drapeau de la CEE, mais "RES1" semble mettre le drapeau NS:Perl RawIP CWR Flag

$n = Net::RawIP->new({ 
ip => { 
     saddr => 'my.target.lan', 
     daddr => 'my.target.lan', 
     }, 
tcp => { 
     source => 123, 
     dest => 123, 
     res1 => 1, 
     res2 => 1, 
     fin => 1, 
     syn => 1 
     } 
}); 

Voici une capture Wireshark des drapeaux du paquet:

Wireshark capture of the packet's flags

+0

Ne serait-ce pas 'window'? ("* Si ARGPROTO est tcp, PROTOKEY peut être l'un des suivants: (source, dest, seq, ack_seq, doff, res1, res2, urgence, ack, psh, rst, syn, fin, fenêtre, vérification, url_ptr, données)." – ikegami

+0

Non, 'window' définit la valeur de la taille de la fenêtre. – Flip

Répondre

1

res2 est deux bits larges.

res2 => 1 # ECE 
res2 => 2 # CWR 
res2 => 3 # ECE & CWR 

(Il pourrait être le contraire sur les machines big-endian, mais je doute.)

(res1 est les 4 bits étiquetés comme "réservés" et "Nonce" dans la capture Wireshark.)