IP network の traffic identification 系の論文メモ

# はじめに
IP network アプリケーションの基本となる、traffic識別について、調べています。気になった論文について、メモを書くことにします。
# Skype関連
Skype関連だけで4本の論文を読んだので、まとめておく。

## 「Skype-Hunter: A real-time system for the detection and classification of Skype traffic」
Skypeのtrafficをリアルタイムに識別するアルゴリズムを提案。
リバースエンジニアリングして、detectするアルゴリズムを作ったように見える。

## 「Classifying Service Flows in the Encrypted Skype Traffic」
SPIDという手法を提案。(Statistical Protocol IDentification )
SkypeのVoIPのtrafficだけを優先したいというニーズ。
TLSで暗号化されたSkypeサービスの正確な分類方式は多分最初の論文だと思う。
3 phaseで分類
(1) まずは統計的手法でskypeのflowか判断する 
(2) flowとpayloadからskypeのサービス(voipか chatか...) を判断 
(3) flowの特徴に基づき、より詳しく分類する
DatasetはSkypeコールは様々なパターンで実際にSkypeを使って取得。他のプロトコルのデータも集めた。

## 「An Investigation on the Identification of VoIP traffic: Case Study on Gtalk and Skype」
暗号化されたフローのうち、SkypeとGtalkのflowを機械学習の方法で分類、区別する。
IPアドレスとポート番号の情報は使わずに、flowの統計量だけを使う。
データセットはコントロールされた環境で取得。

## 「Machine Learning Based Encrypted Traffic Classification: Identifying SSH and Skype」
トレーニング用データセットとは異なるネットワークのデータセットで評価した。
決定木が優秀な結果。
flowの統計量の特徴だけを使う。IPアドレスとポート番号の情報は使わない。
publicなデータセットを使っている。payload情報は削除されている。
Dalhousie trace (UCIS)には、PacketShaperで分析したラベルが付いている。教師データとして使った。


# 「A Survey of Methods for Encrypted Traffic Classification and Analysis」
暗号化されたトラフィックの分類のサーベイ。論文数26個。
多くの論文は、flowかパケットヘッダの特徴をもとに分類している
また方法論は、機械学習による論文が多い。
一番多いのが、教師あり学習、二番目が半教師あり学習、三番目がシンプルな統計的手法
暗号化方式では、SSHが対象のデータセットして多く使われている。
９つの論文はSSHとnon-SSHの認識の手法をテストしている
一つの論文はSSHで暗号化されたトラフィックからタイプ（アプリケーション）識別について書かれている。
三つの論文では、SSL/TLSの中にアプリケーションプロトコルの識別について。
SSL/TLSは世の中では最も多く使われており、SSHより複雑（と著者は書いている）。
一つの論文をのぞいて、リアルタイムの分類は難しいが、５つの論文では、固定数のパケットだけ見ることで、それに近いことをやっている。
正確性については、データセットに大きく依存するので、比較は難しい。ほとんどの論文で、プライベートなデータセットを使っている。
著者の主張は次の３点。
(1) 暗号化されたトラフィックの分類は、まだ不十分でリアルチャンレンジである。
(2) SSL/TLSをリファレンスにすべき。（SSHより複雑で現実でよく使われるプロトコルである）
(3) データセット（トレース）はラベルをつけて、他の研究者も使えるようにすべき。追試、論文の比較のため。


# 「A Machine Learning Approach for Efficient Traffic Classification」
具体的なアプリケーションのために研究した。
機械学習で分類するアプローチ。具体的にはC4.5 決定木。
分類の正確性だけではなく、遅延やスループット、使用するフットプリント、メモリ、計算量のバランスも重要。
オンライン分類のアプローチ。最初の5パケットで分類する。
特徴量は248。下記の論文による。実際に使ったのは12個ぐらい。correlation-baseの特徴量削減した。
「Discriminators for use in flow-based classification」

この後の課題としては次のことを挙げている。
(1) 特徴量の選択や、機械学習のメソッドは、アプリケーションに強く依存する。
(2) 始まりがあるTCPのフローのみ対象としているが、UDP, ICMPや、途中から始まるTCPのフローも、似たような方法で行けるだろう
(3) 暗号化されたトラフィックや未知のアプリケーションのもう少し多くのデータがあれば、いけるかも。


# 「BLINC: Multilevel traffic classification in the dark」
被参照数が多い。1324 (2017/1/7時点)

三つのレベル（ (i) the social, (ii) the functional and (iii) the application）でパターンを分析する。
このアプローチの方法には、二つの特徴がある。
一つは、payloadやport番号、その他の情報を使わないこと。
二つ目は、正確性と網羅性のバランスをチューニングできること
全 trafficeの80%-90%で、95%以上の正確性で分類できた
BLINCとは Blind Classifcationの略。

Limitationとしては次の制限がある。
(1) パケットのヘッダーだけでは、よく似たアプリケーションの識別ができない場合がある。
(2) Layer3のヘッダが暗号化されていると分類できない。これは他の手法でも同様だろう。
(3) NAT経由のtrafficには、もう少し改善が必要
(4) 観察（パケットをキャプチャーする）場所は、今回はネットワークの端（エッジ）のみ。

#　「Internet Traffic Classification Using Bayesian Analysis Techniques」
被参照数が多い。1273 (2017/1/7時点)
ナイーブベイズを使った分類。
単純に適用すると、正確性は65%ぐらいだったが、二つのrefinementを行うと、95%程度に改善した。
カテゴリはあらかじめ10個に決めている。
分類のinputに利用する、discriminatorは6個
TCP flowのduration、Port、Packet間隔（の平均や分散）、Payloadサイズ、エントロピーに基づく帯域効率、Packet間隔のフーリエ変換
二つのrefinementとは、カーネル密度評価と、FCBFプレフィルター。
FCBFプレフィルターはトレーニングセットごとに、次元数削減のため、最適なdiscriminator数を識別する。

# 「A survey of techniques for internet traffic classification using machine learning」
被参照数813 (2017/1/7時点)
2004年から2007年の機械学習によるIP traffic 分類のwork 18個をサーベイしている。
4つに分類できる。
(1) 教師なし学習によるクラスタリング
(2) 教師あり学習
(3) ハイブリッド
(4) 手法の比較
多くの論文でデータセットして「NLANR」が使われている。

# 「A Survey on Recent Traffic Classification Techniques Using Machine Learning Methods」
2009年から2013年の機械学習によるIP traffic 分類のworkをサーベイしている。


# 「The Applications of Deep Learning on Traffic Identification」

Deep Learningの技術を使ってtraffic識別を行った。
Data Setは独自に集めたようだ。約30万レコード（重複を除いて）

重要な特徴はヘッダー部分に集中している。
学習の結果は、50-60 epochsで誤差はとても少なくなった。1/1000 ぐらい。DeepなStacked Auto Encoderが良い結果だった。

識別の結果は、上位25のポピュラーなプロトコルは、96%-100%の結果だった。また unknownなプロトコルの識別もある程度可能だった。

Neural Networkの構成は書かれていない。
今後は、暗号化された通信、P2Pプロトコルの識別を計画している。

# 「A Near Real-time IP Traffic Classification Using Machine Learning」

５つのMachine Learningの手法 (MLP, RBF, C4.5, Bayes Net, Naive Bayes) でTraffic Classificationを行った。
MLP=Multilayer Perceptron
RBF=Radial Basis Function Neural Network
C4.5=popular decision tree (決定木）
Bayes Net=Bayesian Network

Data SetはwiresharkでリアルタイムにInternet packetを2秒だけキャプチャーした。これはリアルタイムなClassificationを目的にしているため。（少ないほどリアルタイム性は良い）

識別の結果は、Accuracyは最も良いBayes Netで92%、最も低いMLPが46%、他は80%強。