• 締切済み

パケットキャプチャについて

よろしくお願いします。 下記サイトにて二通りのパケットキャプチャ方法が紹介されています。 (1)WinSock2を使用したパケットモニターの作成 http://codezine.jp/a/article.aspx?aid=125 (2)WinPcapを使用したパケットモニターの作成 http://codezine.jp/a/article.aspx?aid=126 どちらもパケットキャプチャは実行できたのですが、大量のパケットを送信するとパケットの取り漏れが発生するという問題がありました。 (1)のURLからEXEをダウンロードして実行し、10MB程度のメールを送信すると100%再現します。なお、WIRESHARKでキャプチャすると全てのパケットがキャプチャできていました。 何日もソースをおっかけたり、いろいろ試行錯誤したのですが、解明することができませんでした。 どなかたアドバイスいただけないでしょうか?

みんなの回答

回答No.1

WinSockの限界と判断したほうがよさそうです。 OSがどこかでWinSock経由でデータを見せるのを端折ってるんでしょう。 もしかしたらデバイスレベルでデータを取りこぼしてるかもしれませんし。 WireSharkってたしかWinPcap使ってるんじゃなかったかな。

関連するQ&A

  • パケットキャプチャについて(WinPcap_)

    よろしくお願いします。 下記URLでWinPcapを利用したパケットキャプチャの方法が記載されています。 http://codezine.jp/a/article.aspx?aid=126 (1)AirH等無線LAN機器のパケットキャプチャの実行に失敗するのですが、WINPCAPは無線LANは非対応なのでしょうか?通常のLAN接続はキャプチャできます。 (2)WireShark(旧Ethereal)ではリアルタイムにパケットキャプチャが実行されるのですが、上記URLのやり方では、リアルタイムにパケットキャプチャできないのと、大量のパケットキャプチャを行うと、パケットの取り漏れが発生する場合があります。リアルタイムでかつパケットロスのないキャプチャ方法をご教授していただけないでしょうか?

  • PPPのパケット取得できるパケットキャプチャ

    WireSharkで使用されているWinpcap4.1になってからPPP Adapterのパケットが取得できなくなり、 Winpcap3.1でにしないとPPP Adapterのパケットが取れなく、Windows7では対応していないとの話を聞きました。 PPPのパケットが取れるフリーのパケットキャプチャツールをご存知でしたらご教示いただけますようお願いいたします。

  • WinSockとWinPcapについて

    いつもお世話になります。 今、UDPパケット送受信ソフトを生成しています。 送信ソフトはWinSockを用いて作成しました。 受信ソフトをWinSockを用いて作成しましたが、 受信パケット数をカウントしようと思い、 recvfrom()でカウントしましたが、正常にカウントされない 保障されないことがWinSockではわかりました。 受信パケット数をカウントするには、 デバイスレベルで(Ethereal/WireShark)で行っている ようにWinPCapを用いると パケットをカウントできるのではないかと考えられます。 WinPcapでパケット受信を行う場合、 送信がWinSockで送信していても問題ないでしょうか? また、WinPcapでパケットを受信するには どうしたらいいのでしょうか? どうぞよろしくお願い致します。

  • パケットキャプチャの作成

    特別なライブラリを用意することなくWindows(XP)でパケットキャプチャを作成したいのですが、可能でしょうか? これは何故か使えませんでした http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=f4db40af-1e08-4a21-a26b-ec2f4dc4190d&displaylang=en WinPcapを使用するものは使えますがsystem32/drivers/ディレクトリにインストールしたくないので不可です

  • Javaのパケットキャプチャについて

    Javaでもネットワークのプログラミングができるということを知って、ちょっとそれをかじっている者です。 その学習をするに当たって、最終目標としてパケットキャプチャを作ってみたいと考えてるようになりました。 自分自身に送られてくるパケットを拾って、それを解析したいと思っています。 Pcap系のアプリケーション(WinPcapやlibpcap)を用いれば、それを用いたライブラリを使って作成できることもわかりました。 ただ、ちょっとこだわってみたいので、そういったものを利用することなく作成してみたいなと考えています。 ですが、インターネットで調べても、それらを使用した方法しかわかりません。 実際にそのようなことができるのでしょうか・・・。 TCPパケット・UDPパケットを受信することは可能ですが、その他のプロトコルのパケットの受信と、パケットの解析まではできないのじゃないかと思っています。 気になったので質問しました。 よろしくお願いします。

    • ベストアンサー
    • Java
  • パケット解析(パケットキャプチャ)について

    今、TCP/IPでやり取りする2つのソフトがあり、それらのソフトは同じ一台のPCにインストールされています。 お互いの間で「相手からパケットがこない」「出しているのに相手が受け取っていない」と論争になっています。 (やり取りと言っても単純で、ソフトAがソフトBのマクロコマンドを実行してソフトBを動かすと言うことです。) 違うPC間とかならWire Sharkでパケットをキャプチャすれば一発なのですが、同じPCの中のソフト同士なのでどうやってパケットをキャプチャすればいいのか困っています。 何かいい手はありませんでしょうか? OSはwinXP32bitです。よろしくお願いします。

  • ネットワーク上に存在しないIPアドレスにはUDPパケットが送信できない?

    はじめまして。よろしくお願いします。 Cでソケットプログラミング(WinXP,VC++6.0)を行っています。 やろうとしていることは、 ・UDPパケットを同じネットワークセグメントのIPアドレスに送信する ということです。 プログラムを作成し、本当に送信しているのかどうかをパケット キャプチャソフト(wireshark)を使って確認してみました。 すると、ネットワーク上に存在するIPアドレスにはパケットを送信 しているのですが、存在しないIP(つまり、電源を切っているPC)には パケットを送信していないことがわかりました。 ネットワーク上においてそのIPの存在に関係なく、パケット を送信することは出来ないのでしょうか? よろしくお願いします。

  • 別PCのパケットキャプチャが上手くいかない

    自宅にある別PCのパケットをキャプチャしたいと思っているのですが、なかなか上手くいきません。 別PCのパケットキャプチャをするには、まずLANを組む必要があると思うのですが、以下の環境ではLANとはなりませんか? ルータ ┣WinXP PC A(有線接続 このPC) ┗Vista PC B(無線接続 キャプチャしたいPC) このPC AとPC Bは、XPでいうところの「ホーム/小規模オフィスのネットワークをセットアップする」という事は双方してません。 LANが組めていれば、マイネットワークでワークグループを表示したら接続されているPCが表示されると記憶しているのですが、 表示させようとすると「Mshomeにアクセスできません。~このワークグループのサーバ一覧を現在利用できません」と警告が出ます。 別PCのパケットキャプチャですが、様々なソフトをインストールしてみましたが、自分のPCのIPアドレスしか表示されずPC BのIPアドレスが出てきません。 インストールしたソフト ・Squeezer ・tcpmon200 ・WildPackets OmniPeek Personal ・EPD ・Wireshark LANが組めていない、となるとカテゴリが異なるので、もう少し調べてLAN接続をしっかりしてから出直してきます。

  • TCP/IPで同じパケットが2つ送信される。なぜ?

    Windows8 PC上のブラウザから、LAN上の機器(HTTPサーバ)にアクセスしようとしています。 Wiresharkでそのときの通信を覗いてみると、PCから送信されるパケットはなぜか2回同じものが短時間の間に連続して送信されているようです。その理由に心当たりがある方がいらっしゃいましたら、教えて下さいませんか? また、設定で回避できるのであれば、その設定項目などもわかるとありがたいです。 詳しい状況です。Wiresharkのキャプチャ画像と合わせて見て下さい。 *PC側IPは192.168.0.12、HTTPサーバは192.168.0.18です。 *Wiresharkでは、パケット6と7、9と11、10と12、14と15は内容的に同じパケットのようです(seqとackが同じ) *同じパケットのうち、前の方のパケットではIPパケットのチェックサムが0000hとなっているようです(チェックサムオフロード?)。後の方のパケットには、具体的なチェックサムの値が入っています。 *前のパケットが短い場合(54バイトとか)、後のパケットにはパディングとして00hが追加されて、60バイト長となるようです。それ以上の長さのパケットは、前述のチェックサム以外には違いは見られません。 *同じ2つのパケットは、極短い期間で連続して送信されているので、HTTPサーバからの応答タイムアウトで再送しているという風には思えないです。 *PC側のブラウザは、ChromeでもIEでも同じように2つの同じパケットが送信されていました。しかし、LANの外(ルーター外のインターネット)に接続するときは、このように2つの同じパケットはWiresharkで見ると出ていないようです。 *ちなみに、PC側のLANはRealtekのGigabit Ether(有線)です。 よろしくお願いいたします。

  • パケットの計算方法について

    今、WinSockを使ったパケット送信プログラムを作成しています。 Ethernetフレームで、UDPを用いて転送する予定です。 そこで、送信するパケットについて検討しています。 UDPのペイロードサイズが、1472バイトであることはわかりました。 10Base-Tと100Base-Tそれぞれの場合で、送信パケットの上限数とパケット間隔についてどのように算出すればいいのでしょうか? どうぞよろしくお願い致します。