raw ソケットはIP_HDRINCL
、送信される IP パケットの特定のフィールドの値を自動的に設定します。
あなたの場合、パケットIDはゼロの場合に上書きされます。(それはあなたの場合ですか?)
これはケースです:(Raw Socketのmanページから取得)
+---------------------------------------------------+
|IP Header fields modified on sending by IP_HDRINCL |
+----------------------+----------------------------+
|IP Checksum |Always filled in. |
+----------------------+----------------------------+
|Source Address |Filled in when zero. |
+----------------------+----------------------------+
|Packet Id |Filled in when zero. |
+----------------------+----------------------------+
|Total Length |Always filled in. |
+----------------------+----------------------------+