• 締切済み

通信フローの数をsyn,ack,rst等のフラグで区別できるツールご存知ないですか。

こんにちは。 RubyもPHPもPerlも使わず、C言語でパケットデータを測量したいと考えています。目的はsynフラグが立っているパケットデータを含む通信フローの数のみの取得です。ackやrstの立っているパケットデータは数えないで、synフラグのみの通信フローを取得したいと考えています。 このような通信フローの数を数えてくれるツールをご存知でしたら教えて頂けないでしょうか。 環境はCentosです。どうぞよろしくお願いします。

みんなの回答

  • ceita
  • ベストアンサー率24% (304/1218)
回答No.1

tcpdumpでどうでしょう。

arlstumia
質問者

補足

ご回答有難う御座います。 tcpdumpは質問させて頂く前にちょっと試用してみたことがあります。残念なことにtcpdumpはフラグによるフィルターをかけて出力を制御できますが、同一の通信フローでも別の通信フローと見なして出力してしまう点と、フロー数を数える機能が付いていない点で使えそうにないと判断したツールなんですよね。後者の機能は自分で書けばなんとかなりそうですが、前者の部分を解決出来るツールが他になにかありましたらお手数ですが教えて頂けるでしょうか。何度もすみませんがどうぞよろしくお願いします。

関連するQ&A

  • 3ウェイハンドシェイクの流れを変える方法

    OS「fedora 5」、言語「C」で、ソケットプログラミングを使い、3ウェイハンドシェイクの流れ <3ウェイハンドシェイク> クライアント     サーバ  syn    →→→        ←←← syn/ack  ack    →→→ これを クライアント     サーバ   syn     →→→         ←←←  rst         ←←←  syn syn/ack   →→→         ←←←  ack の流れにしようと考えています。 参考書を読んだり、ソケットプログラムのことについて調べたのですが、お手上げ状態です。 コントロールフラグの変更の仕方はどうやるのでしょうか? また理論上は3ウェイハンドシェイクを変えることきているのですが、実際は流れ自体変える事は不可能なことなのでしょうか?

  • TCP/IPでRST(リセット)フラグのデータって?

    TCP/IPのデータで質問です。 パソコンのサーバーと無線ハンディをTCP/IPで通信しています。サーバー側は無線ハンディからの要求に応えるプログラム(Visual Basic,Winsockコントロール使用)が起動されています。 このサーバーに無線ハンディ30台(もっと多いこともある)から,いっせいに接続要求を出すのですが,この接続に失敗するハンディがあったりします。 このときLAN上のデータを見てみると,パソコン側からRST(リセット)フラグ(強制切断)のデータが出ていました。どうやらこれが接続に失敗している原因のようなのです。 このRST(リセット)フラグのデータが出るのは,どう行ったときなのでしょうか? どういう理由でRST(リセット)フラグのデータが出るのでしょうか? ご存知の方,いらしゃいましたら教えていただけないでしょうか? よろしくお願い致します。

  • TCPの接続処理と終了処理について

    TCPでコネクションを確立するとき、制御フラグでSYN、SYN+ACK、ACKで3パケットをやりとしますが、終了手順のときは、FIN、ACK、FIN、ACKと4パケットをやりとりします。 これは何故でしょうか? コネクション確立時と同じく、FIN、FIN+ACK、ACKにしないのは何故でしょうか?教えてください。

  • WiresharkのFlow Graph

    現在WiresharkのFlow Graphという機能を使用して、クライアント端末がサーバー端末へのTCP通信での3ウェイハンドシェイクのパケットやりとりを観測したいと思っています。 次のようなパケットをモニターしました。 |Time | 192.168.1.111 | | | | 192.168.1.222 | |6.402 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1 | |(6057) ------------------> (5000) | |6.606 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1 | |(6057) ------------------> (5000) | |6.835 | PSH, ACK - Len: 1212 |Seq = 1 Ack = 1213 | |(6057) <------------------ (5000) | |7.039 | ACK | |Seq = 1213 Ack = 1213 | |(6057) ------------------> (5000) | |7.150 | ACK | |Seq = 1213 Ack = 1213 このパケットのやりとりを観ていて思ったのですが、TCP通信は3ウェイハンドシェイクは SYN--->SYN ACK---> ACK という順序でのパケットのやりとりをクライアントとサーバー間で行うと思っていたのですが、 PSH, ACK ----> PSH, ACK ----> ACK ----> ACK このような順序になっているように思うのですが、これはなぜなのかご教授頂けないでしょうか? どうぞ、よろしくお願い致します。

  • 3ウェイハンドシェイクについて

    TCP通信を行う場合、3ウェイハンドシェイクでパイプをつくるようですが、その始め(通信の始め)にSYNを送り、その返信にACKを返す仕組みになっていると思います。そのSYNを送るときに、MAC、IP、TCPヘッダーをつけたパケットを送ると思うのですが、アプリが作ったデータもまた送るのでしょうか?通信できるかどうかを確かめるだけなら最初の通信はデータが必要ないと思うのですが・・・。また、データをつけないパケットなども送ることができるのか(フォーマットに合わないような気が・・・)どうかもあわせてお願いします。

  • データを取得して、同じ種類毎に区分する良いやり方はありませんか。

    こんばんは。質問させて頂きます。 C言語で、pcap.hを使った通信フローの区分けをしたいと考えています。区分けの条件は、 1.送受信アドレスが同じであること(送受が逆でも同一) 2.送受信ポートが同じであること(送受が逆でも同一) の2つで、これらを全て満たしているパケットは同一の通信フローと見なし、その通信フローの数を数えるプログラムを目指しています。 パケットをキャプチャするところまではいったのですが、パケットデータを区分けするアルゴリズムが思い浮かばず困っています。どなたかお力添えを頂けないでしょうか。どうぞよろしくお願いします。

  • インターネット通信不能攻撃への対策

    ネットにつなぐ時もし攻撃者が僕が毎日10:00にモデムに電源をいれ プロバイダーからIPアドレスを振ってもらうタイミングがわかるとします。そして時々僕のところに除きに来て通信先もわかるとして、そこからIPアドレスをパケットを盗聴して僕のIPアドレスは完全に特定できるとして、IPアドレスの変更は無駄なこととして聞いてください。 僕のIPアドレスがばれているので通信先がわかり訪れたサイトのIPアドレスに成りすましTCPパケットを連続で打ってきます。 これはパーソナルファイアウォールのTCPのインバウンド拒否で防げますが、迷惑なのが 通信できないようにしてくることです。 僕のIPアドレスに成りすましてFIN、RSTパケットを送って通信を終わらせてるのか 通信先のIPアドレスに成りすまして僕のほうにFIN、RSTパケットを送ってきて終わらせてるのか そういうの詳しくないんですけど そういうのができると本気を出せば一日中強制的に通信不能にできることもできますよね? IPアドレスが偽装されてるのでどう相手を特定したらいいんですか? またjeticoというPFWがありますがこれはTCPのFIN,SYN,RSTなどフラグ別にまで制御できますが、これでインバウンドのRST,FINを遮断すれば解決できませんか?(それではぼくのIPアドレスに偽装して通信先にFIN、RSTパケットを送る遮断攻撃対策になってませんが) どうすれば遮断攻撃を回避できますか?

  • TCP/IP ACKについて

    初めて質問させて頂きます。 現在WinpCapを使ってTCPの通信プログラムを作成しています。 単純にパケットの受信や送信は出来たので、ローカルサーバーに接続出来るか試しているのですが、通信が確立しません。 状況としては、こちらからSYN = 1でサーバーに信号を送ると、サーバーから返事が来ます。 サーバーの返事を待ってACK = 1でサーバーに返事をするのですが、そのときの状態をWiresharkで確認すると、ACKの番号が2067011292等と表示されて通信が確立しません。 ACKの値が異常なのは判りますが、この数値はどこから来るのか、又対処方法などが有りましたら教えてください。 環境はVC2003、WInXP/Win7です。

  • ソケット通信の送受信遅延-02 その後

    前回のNo.1031658 「ソケット通信の送受信遅延」に追加させてもらいます その後、プロトコルアナライザで現状調査を行い以下の現象を確認しました ◇正常時  サーバがメッセージ送信  TCPヘッダ内フラグ ACK:1, PSH:1 + 送信データあり ↓  0.2msec前後で クライアントが 返信  TCPヘッダ内フラグ ACK:1, PSH:1 + 返信データあり ↓  10msecで サーバが送信  TCPヘッダ内フラグ ACK:1, PSH:1 + 送信データあり ↓  0.2msec前後で クライアントが 返信  TCPヘッダ内フラグ ACK:1, PSH:1 + 返信データあり ↓          以下繰り返り ◇不具合時  サーバがメッセージ送信  TCPヘッダ内フラグ ACK:1, PSH:1 + 送信データあり ↓  0.2msec前後で クライアントが 返信  TCPヘッダ内フラグ ACK:1, PSH:1 + 返信データあり ↓  10msecで サーバが送信  TCPヘッダ内フラグ ACK:1, PSH:1 + 送信データあり ↓  約130msec前後で クライアントが 返信  TCPヘッダ内フラグ ACK:1, PSH:0 + 返信データなし ↓  約250msec前後で クライアントが 返信  TCPヘッダ内フラグ ACK:1, PSH:1 + 返信データあり ↓ といった状況です どう解釈すれば良いのでしょうか 遅延の原因はソケットなのかそれ以外なのでしょうか?是非アドバイスをおねがいします。

  • 通信バイト数を計算するには?

    こんにちは 今回、パケット課金のデータ通信カードを購入よていなのですが、実際どれくらいのパケ代がかかるのかわからずどのプランにするべきか迷っています。 実際にそのカードをつかって行う作業は限られているため、その作業をしたときにどれくらいのパケット数のやりとりがあるのかいまの状態(LAN接続)で調べたいのですがなにか方法はありますか? お願い致します。