wiresharkにUDP送信パケットが2重で表示される問題

 

表題の問題を解決するのにほぼ1日を費やしたので記録しておく。

結論を先に書いておくと、npcapをアンインストールしてwinpcapの新しいバージョンをインストールしたら治った。win10 64bitのPCだ。

 

以下に解決までの流れを書いておく。

 

C#で作った自作UDPデータ送信プログラムの動作検証をしようとした。

PCから別のPCに、UDPデータが送信できているかどうか、wiresharkで確認しようと考えた。自作プログラムにも何回送信したのかログが出るのだが、それを信用するのも怖いので別のプログラムからも監視しようと考えたわけである。

 

自作プログラムから1パケット送信。ログも1回。

wiresharkには2パケット表示。

別PCでのログを確認すると1パケット受信。

 

なんだこれは、となったわけである。

 

wiresharkの表示パケットは2つとも中身は全く同じで、違うのはIPフラグメンテーションの通し番号(おそらく。)だけだった。

 

最初はまさかwiresharkが悪いとは思わず、自作のコードを確認し、ハードウェア(ルータ、ケーブル)の問題かどうか切り分け、PCの設定を確認し…でもわからなかった。

 

Google先生に聞いてみても同じような症状がヒットせず。

wiresharkをインストールしなおしてもダメだった。

 

受信してるパケットも1パケットだし、もういいかと半ば諦めていたが、英語で検索をかけてみると、wireshark公式のフォーラムにそれらしき投稿があった。

https://osqa-ask.wireshark.org/questions/63519/udp-packet-are-duplicated-in-capture

 

上記のページにはnpcapのバージョンが古いのでは?新しいWinpcapをインストールしなおしてみたら?

的なことが書かれていた。

 

自分の環境ではwiresharkインストーラにnpcapのインストールする?としか聞かれなかったので、何も考えずにnpcapをインストールしていたのだが…。

npcapをアンインストールしてwinpcapをインストールしなおした。

メモが手元にないのでバージョンをここにかけないのだが、安定版をインストールしたような気がする。

 

そしたら解決した。

日本語だと検索しても見つからなかったので、メモとしてこれを書いておくことにする。結局自作プログラムはきちんと動作していたようでよかった。