# NSDMiner
ネットワークフローを受動的に解析してネットワークサービス間の依存性を自動発見するオープンソースツール。[[North Carolina State University]] の [[Peng Ning]] らが開発。Arun Natarajan が初版を開発し(IEEE INFOCOM 2011 投稿)、[[Barry Peddycord III]] らが LISA 2012 論文([[@2012__LISA__On the Accurate Identification of Network Service Dependencies in Distributed Systems]])で三つの拡張を追加した。
## 設計原理
ネスト化されたネットワークフローパターンを利用する。クライアント C がサービス A にアクセス中に A がサービス B にフローを発生させれば、A→B の依存性候補とみなす。通信グラフを構築し各候補に信頼スコアを付与して偽陽性を除去する。
## 処理フェーズ
1. **依存グラフ生成**: フローリストから通信グラフを O(n²) で構築(数億フローで数日規模)
2. **後処理**: 推論(--infer)・クラスタリング(--clusters)・ランキングを並行して実施
## 入力形式
- TCP/UDP フローの 7 属性タプル: (StartTime, EndTime, SourceIP, SourcePort, Protocol, DestIP, DestPort)
- pcap(--pcap)または Cisco Netflow(--cisco)形式をサポート
- Python パッケージとして実装
## リポジトリ
- **オープンソース**: http://sourceforge.net/projects/nsdminer
## 関連
- [[Barry Peddycord III]] — 拡張実装の主著者
- [[Peng Ning]] — 研究リード
- [[North Carolina State University]] — 開発機関
- [[ネットワークサービス依存性発見]] — 本ツールが解く問題領域