そのため、PCap ライブラリの受信機能に問題がありました。
パケットを取得して方向転換するだけのエコーサーバーを(PCの外に)セットアップしました。したがって、私のアプリケーションでは、(正常に動作する) パケットを送信し、pcap_next() を使用して (エコー サーバーから) 応答パケットを受信しようとしました。何らかの理由で、Wireshark がパケットが 1 ミリ秒未満で方向転換したことを示している場合でも、pcap_next() でパケットを受信するのに 1 秒待機します。したがって、1000 パケットを送信すると、すべての応答を受信するのに 1000 秒かかります。
なぜそうしているのかわからなかったので、 pcap_loop() に切り替えてみました。どうやら今、それはさらに奇妙なことをしている。1000 パケットを送信し、1000 パケットを受信しましたが、期待した順序ではありません。
私はこれを期待しています (これは Wireshark で見られるものです):
Send packet #1
Receive packet #1
Send packet #2
Receive packet #2
etc.
しかし、これは私が本当に得るものです:
Send packet #1
Send packet #2
etc.
Wait 1 second
Receive packet #1
Receive packet #2
etc.
何が起きてる?