JP2011024179A - Httpパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法 - Google Patents
Httpパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法 Download PDFInfo
- Publication number
- JP2011024179A JP2011024179A JP2009210495A JP2009210495A JP2011024179A JP 2011024179 A JP2011024179 A JP 2011024179A JP 2009210495 A JP2009210495 A JP 2009210495A JP 2009210495 A JP2009210495 A JP 2009210495A JP 2011024179 A JP2011024179 A JP 2011024179A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- stage
- flow
- japanese
- hangul
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
- G06F40/129—Handling non-Latin characters, e.g. kana-to-kanji conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】HTTPパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法を提供する。
【解決手段】トラフィックモニターリング装備においてHTTPトラフィック分析を行うときに、HTTPパケットペイロード内にエンコードされているハングルまたは日本語文字列を探知して解読する方法/装置と、これを用いて探索したHTML若しくはXMLなどのウェブ文書の内容を分析してユーザがどの種類のコンテンツに関心を持っているかを分析する。
【選択図】図1
【解決手段】トラフィックモニターリング装備においてHTTPトラフィック分析を行うときに、HTTPパケットペイロード内にエンコードされているハングルまたは日本語文字列を探知して解読する方法/装置と、これを用いて探索したHTML若しくはXMLなどのウェブ文書の内容を分析してユーザがどの種類のコンテンツに関心を持っているかを分析する。
【選択図】図1
Description
本発明はトラフィックモニターリング装備においてHTTPトラフィック分析を行うときに、受信されたHTTPパケットペイロード内にハングルまたは日本語がエンコードされているかどうかを探知し、これを解読する方法/装置及びこの方法により解読されたウェブコンテンツの内容を分析する方法に関する。すなわち、本発明は、トラフィックモニターリング装備においてHTTPトラフィック分析を行うときに、HTTPパケットペイロード内にエンコードされているハングルまたは日本語文字列を探知して解読する方法/装置と、これを用いて探索したHTML若しくはXMLなどのウェブ文書の内容を分析してユーザがどの種類のコンテンツに関心を持っているかを分析する方法に関する。
インターネットに代表されるネットワークの活性化に伴い、ネットワークの属性と特徴を正確に理解し、各種のネットワーク上において発生する問題(トラフィック問題、保安問題など)の原因を明確に究明して解決するためにトラフィック分析またはパケット分析が行われている。
ポート番号を用いたトラフィック分析方法は簡単であるため盛んに活用されているものの、分析の正確度が低いという不都合がある。より正確な分析方法として、パケットペイロードにおいてアプリケーションの特定のシグニチャーの存否を判断して分析する方法がある。しかしながら、特定のシグニチャーを探索することは容易ではなく、シグニチャーが変わる度に更新をしなければならないという欠点がある。その他にも、IPアドレス若しくはtcpポート番号などのフィールドとパケットサイズなどの特徴をSVM(Support Vector Machine)などの機械学習に適用してトラフィックを分析する方法もある。しかしながら、これらの方法論は、インターネットアプリケーションを分類することが主たる目的である。
一方、このような既存の研究及び分析の観点から逸脱して、ネットワークに流れるHTTPプロトコルを利用するウェブアプリケーションパケットを対象としてハングルまたは日本語HTML若しくはXML文書を抽出してコンテンツ別に分類することにより、ユーザがインターネットにおいてどの種類のコンテンツに関心が多く、どのような行動パターンを示すかなどを把握する必要性が高まりつつある。
現在、インターネット上には、パケット分析を簡単に且つ正確に行う上で役立つような種々のツール(Ethereal、Wireshark、Snifferら)が存在する。しかしながら、これらのツールは、パケットのペイロードの内容をアスキーコード文字列として表示することに留まっており、ハングルからなる文字列がHTTPパケットに含まれている場合、その内容を知ることができない。韓国や日本の場合、インターネット上の情報はほとんどハングルや日本語にエンコードされたウェブコンテンツであるため、インターネットトラフィックの内容を精度よく分析し、且つ、ユーザの行為を把握するためのコンテンツ分析のためには、アスキーコードではなく、ハングルまたは日本語文字列として自動的に認識して解読することの必要性が増大されている。
現在、HTTPにおいて使われるハングルエンコード方法は、ハングル完成型コード(KS完成型標準ハングルコード、KSC5601)を用いたエンコード、EUC−KR、UTF−8、UTF−16に大別できる。しかしながら、現在、ほとんどのウェブサーバがハングル完成型コード(KSC5601)、特に、EUC−KRとUTF−8を用いてウェブページを伝送しているのが現状である。
ハングル完成型コードは2バイト完成型コードであり、2350文字のハングルを支援する(KSC5601)。EUC−KRは、Bell Lab.において、UNIX(登録商標)上において英文字以外の文字を支援するために提案した拡張UNIX(登録商標)コードのうちハングルエンコード方式であり、英文はKSC5636(新名称はKS×1003)で処理し、ハングルはKSC5601(新名称はKS×1001)で処理する。ここで、KSC5636は英文字に対する標準であり、韓国工業標準情報処理分野(C)の5636番標準案を言い、既存のアスキーコードにおいて逆スラッシュ(¥)をウォン表示に代替したコードである。すなわち、EUC−KRは、KSC5601とKSC5636を併合したコードを使用する8ビット文字エンコードであると考えればよい。
UTF−8とUTF−16はユニコードのための可変長文字エンコード方式の一つである(ISO/IEC10646)。UTF−8エンコードは、ユニコード1文字を表示するために1バイトから4バイトまでを使用する。例えば、U+0000からU+007Fの範囲にあるアスキー文字は、UTF−8において1バイトだけで表示される。同様に、U+0080からU+07FFまでは2バイトであり、U+0800からU+FFFFまでの間に入るハングルは3バイトでエンコードされる。UTF−16は、基本多国語平面(BMP:Basic Multilingual Plane)に属する文字はそのまま16ビット値にエンコードし、それ以上の文字は特定の方式により32ビットにエンコードする。
現在HTTPにおいて使われる日本語エンコード方法は、SHIFT−JIS、EUC−JP、UTF−8、UTF−16に大別できる。
SHIFT−JIS(JIS×0208:1997 Appendix 1)は、JIS×0201とJIS×0208などを使用する日本語文字エンコードであり、SJISと略称する。1982年に開発され、日本内において広く使用されるに伴い、JIS×0208:1997の付属書1として標準化された。バイトコードからなるSHIFT−JISは多数の拡張が制定されたが、これらの中でJIS×0208の拡張により制定されたマイクロソフトのコードページ932が最も多用される。中でも、ひらがらは0x829F〜0x82F1、カタカナは0x8340〜0x8396であり、最後に、漢字は、いくつかを除いては0x889F〜0xEEEC、0xFA5C〜0xFC4Bの範囲に属する。
EUC−JPは、Bell Lab.において、UNIX(登録商標)上において英文字以外の文字を支援するために提案した拡張UNIX(登録商標)コードのうち日本語エンコード方式であり、EUCのエンコード方式上にアスキーとJIS×0208文字集合を配置したものであり、半角カナ(JIS×0201)とJIS補助漢字(JIS×0212)も含むことができる。中でも、ひらがなは0xA4A1〜0xA4F3、カタカナは0xA5A1〜0xA5F6であり、最後に漢字は2バイトの0xB0A1〜0xFCEDと0x8FA2A0〜0x8FFEFE範囲の3バイトの補助漢字から構成されている。
UTF−8とUTF−16は、ユニコードのための可変長文字エンコード方式の一つである(ISO/IEC10646)。UTF−8エンコードは、ユニコード1文字を表示するために1バイトから4バイトまでを使用する。例えば、U+0000からU+007Fの範囲にあるアスキー文字はUTF−8において1バイトだけで表示される。同様に、U+0080からU+07FFまでは2バイトであり、U+0800からU+FFFFまでの間に入る日本語は3バイトにエンコードされる。UTF−16は、基本多国語平面に属する文字はそのまま16ビット値にエンコードし、それ以上の文字は特定の方式により32ビットにエンコードする。
本発明は、HTTPパケットにおいてハングルまたは日本語がエンコードされているかどうかを確認し、エンコードされている場合にこれをハングルまたは日本語文字列にデコードして表現(出力)可能な方法及び装置を提供することを目的とする。
また、本発明は、前記ハングルまたは日本語のデコード方法によりデコードされたHTML/XML文書単位で解読されたハングルまたは日本語コンテンツをカテゴリ別に貯蔵されたハングルまたは日本語キーワードとのマッチングを通じて当該文書を特定のコンテンツカテゴリに分類して、ウェブコンテンツ分析だけではなく、当該網におけるユーザの行為までも把握できるようにすることを目的とする。
以下、説明の便宜のために、いくつかの用語を定義する。
「フロー」とは、共通のアドレス対(送信元アドレス、送信元ポート番号、受信先アドレス、受信先ポート)、ホスト対(送信元ホストアドレス、受信先ホストアドレス)、ネットワークアドレス対(送信元ネットワークアドレス、受信先ネットワークアドレス)、AS番号対(送信元AS番号、受信先AS番号)などとして与えられる条件を満足する制限された時間内に到着するIPパケットの流れとして定義される。このため、受信されたパケットのヘッダーを分析すれば、そのパケットが特定のフローに属するか、属すればフローの何番目のパケットであるか、または、最後のパケットであるかなどを確認することができる。IPパケットヘッダー分析は、従来周知の事項であるため、詳細な説明を省略する。
「ペイロード(payload=message body)」はパケットのヘッダーに対応する概念であり、ユーザ情報(コンテンツ)を保有するパケットの部分を意味する。ペイロードは、圧縮されている場合もある。
上述した課題を解決するために、本発明は、フロー情報などが格納されるフローテーブルが介在されたハングルまたは日本語のデコード方法/装置、これによりデコードされたハングルまたは日本語ウェブコンテンツの分析方法に関する。
(1)フローに相当するパケットのペイロードを組立した後にデコードする方法
本発明によるハングルまたは日本語のデコード方法は、フロー情報などが格納されるフローテーブルが介在されたハングルまたは日本語のデコード方法において、(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(ペイロード組立段階)に移行する第1段階(フロー分析段階)と、(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記の第3段階(ペイロード組立段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、(C)前記段階(B)において、HTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロード部分を格納し、前記段階(A)において、最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケットのペイロードを既存に格納されている当該フローのペイロードに連結してフローを組立する第3段階(ペイロード組立段階)と、(D)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新して前記第1段階に移行する第4段階(フローテーブル管理段階)と、(E)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであれば、フローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後、(2)圧縮されたものではなければそのまま前記フローのHTTPペイロードのストリングからハングルまたは日本語をデコードする第5段階(圧縮解凍/デコード段階)と、を含んでなるHTTPパケットにおけるハングルまたは日本語のデコード方法である。
本発明によるハングルまたは日本語のデコード方法は、フロー情報などが格納されるフローテーブルが介在されたハングルまたは日本語のデコード方法において、(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(ペイロード組立段階)に移行する第1段階(フロー分析段階)と、(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記の第3段階(ペイロード組立段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、(C)前記段階(B)において、HTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロード部分を格納し、前記段階(A)において、最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケットのペイロードを既存に格納されている当該フローのペイロードに連結してフローを組立する第3段階(ペイロード組立段階)と、(D)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新して前記第1段階に移行する第4段階(フローテーブル管理段階)と、(E)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであれば、フローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後、(2)圧縮されたものではなければそのまま前記フローのHTTPペイロードのストリングからハングルまたは日本語をデコードする第5段階(圧縮解凍/デコード段階)と、を含んでなるHTTPパケットにおけるハングルまたは日本語のデコード方法である。
別途の詳細な付加説明がなくても、本発明の特性から、通信上の瑕疵などによりそれ以上受信または分析するパケットがない場合、前記デコード方法の遂行が中断されることは言うまでもない(以下、同じ)。
本発明において、前記フローテーブルは、フローを識別可能な情報フィールドと、削除予約フラグフィールド、フロー維持時間フィールド、ハングルまたは日本語エンコード型フィールド、HTTPパケットのペイロード長フィールド及び圧縮有無フラグ情報フィールドを含むことが好ましい。もし、フロー維持時間フィールドがある場合、後続パケットが所定のフロー維持時間(例えば、30秒)内に受信されなければデコードを終了するようにしてもよい。削除予約フラグフィールドがある場合、初期フロー分析段階においてパケットが最後のパケットである場合(すなわち、パケットのTCPヘッダーにFINフラグが設定された場合)、これを削除予約フラグに記録しておき、この記録の有無を確認することによりパケットが最後のパケットであるかどうかを確認するようにしてもよい。すなわち、フローテーブルに設定された削除予約フラグがあるか、または、所定のフロー維持時間を超えたフローがあるかをチェックして、あればフローテーブルを削除(初期化)する。
本発明の前記第2段階(適合性分析段階)において、HTTPヘッダーにシグニチャー1(「Content-Type:XXX」及び{「charset=YYY」または「encoding=YYY」}、ここで、XXXが「text/html」または「text/xml」)が存在し、YYYが、(1)ハングルエンコード型であるUTF−8、utf−8、EUC−KR、euc−kr、KS_C_5601またはks_c_5601であるか、または、(2)日本語エンコード型であるUTF−8、utf−8、EUC−JP、euc−jp、SHIFT−JISまたはshift−jisである場合に、フローテーブルを生成して第3段階(ペイロード組立段階)に移行することが好ましい。
(2)また、本発明によるハングル及び日本語デコード装置は、上述した方法を行うための装置であり、(A)受信されたパケットのIPヘッダーを分析して最初のパケットであるかどうかを確認するヘッダー分析部と、(B)前記HTTPパケットヘッダーとペイロードの一部情報を参照して、HTTP応答パケットであるか、あるいは、ハングルまたは日本語デコードが可能なパケットであるかを判断する適合性分析部と、(C)適合性が確認されたパケットのペイロードを組立するペイロード組立格納部と、(D)フロー情報を生成、管理するフローテーブル管理部と、(E)組立が完了されたフローのペイロードをパーシングを通じてデコードする圧縮解凍/デコードブと、を備えるHTTPパケットにおけるハングルまたは日本語デコード装置である。
(3)本発明によるハングルまたは日本語ウェブコンテンツの分析方法1は、上述した方法によりデコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析することを特徴とするハングルまたは日本語ウェブコンテンツの分析方法である。
(4)パケットごとにペイロードを順次にデコードした後にコンテンツ分析する方法(ペイロード組立段階がない方法)
本発明によるハングルまたは日本語ウェブコンテンツの分析方法2は、フロー情報などが格納されるフローテーブルが介在されたハングルまたは日本語ウェブコンテンツの分析方法において、(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(圧縮解凍/デコード段階)に移行する第1段階(フロー分析段階)と、(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記の第3段階(圧縮解凍/デコード段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、(C)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであれば、パケットペイロードの圧縮を解凍した後、(2)圧縮されたものではなければそのまま前記パケットのHTTPペイロードのストリングからハングルまたは日本語をデコードする第3段階(圧縮解凍/デコード段階)と、(D)デコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析する第4−1段階(パターンマッチング段階)と、(E)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新し、前記第1段階に移行する第4−2段階(フローテーブル管理段階)と、を含むHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法である。
本発明によるハングルまたは日本語ウェブコンテンツの分析方法2は、フロー情報などが格納されるフローテーブルが介在されたハングルまたは日本語ウェブコンテンツの分析方法において、(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(圧縮解凍/デコード段階)に移行する第1段階(フロー分析段階)と、(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記の第3段階(圧縮解凍/デコード段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、(C)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであれば、パケットペイロードの圧縮を解凍した後、(2)圧縮されたものではなければそのまま前記パケットのHTTPペイロードのストリングからハングルまたは日本語をデコードする第3段階(圧縮解凍/デコード段階)と、(D)デコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析する第4−1段階(パターンマッチング段階)と、(E)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新し、前記第1段階に移行する第4−2段階(フローテーブル管理段階)と、を含むHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法である。
この場合、前記フローテーブルには、上述した(1)におけるフィールドに1バイト格納空間フィールドが追加されることが好ましい。1バイト格納空間はハングルと日本語の2バイトエンコード方式を反映したものであり、下記のように活用される。
すなわち、前記第3段階(圧縮解凍/デコード段階)及び第4−2段階(フローテーブル管理段階)において、(a)前記パケット(n)がフローの最後のパケットではない場合、ハングルまたは日本語デコードを行い、最後の1バイトが残留するときにこれをフローテーブルの1バイト格納空間に一時的に格納し、(b)次のパケット(n+1)の処理時に前記一時的に格納された1バイト情報を次のパケット(n+1)のペイロード先端に添付した後にデコードするのである。
前記第2段階(適合性分析段階)は、上述した(1)と同様でありうる。
本発明により、HTTPパケットにエンコードされているハングルまたは日本語文字列を探知して解読するとき、ハングル完成型コード値と比較してその値に相当するハングルまたは日本語文字を出力することが可能になる。
また、本発明により、ハングルまたは日本語文字列が多数のパケットに跨っている場合、同じ出発地と目的地IPアドレス/ポート番号を有する連続したHTTPパケットに対しても、エンコード情報がなくてもハングルまたは日本語文字列を探知して解読できるようにする。
さらに、本発明により、探知されたハングルまたは日本語文字列情報を利用することが可能になり、HTTPトラフィックの詳細な分析が可能になる。
本発明によれば、探知されたハングルまたは日本語文字列情報を用いてトラフィックモニターリングシステムが設けられたネットワーク内のユーザがどのようなウェブコンテンツを楽しむかを把握することができる。このような情報を基に、ウェブコンテンツ製作者は、特定のウェブポータルにおける人気コンテンツ結果ではなく、様々なウェブポータルを利用する総合的な結果を得ることができ、ネットワーク管理者や新たにネットワークを設計するエンジニアは、ネットワーク優先順位経路の設定などのネットワーク管理を最適化する上で活用することが可能になる。
以下、添付図面に基づき、本発明を詳述する。しかしながら、これらの図面は本発明の技術的思想の内容と範囲を容易に説明するための例示に過ぎず、これにより本発明の技術的範囲が限定されたり変更されることはない。また、これらの例示に基づいて本発明の技術的思想の範囲内において種々の変形と変更が可能であることは当業者にとって当然である。
図1は、本発明によるハングルまたは日本語のデコード方法及びその結果として得られたウェブコンテンツを分析する方法の一例を示す全体フローチャートであり、図2は、本発明によるハングルまたは日本語のデコード方法の他の例を示すフローチャートである。図1及び図2の例は、フローに相当するあらゆるパケットのペイロードを組立した後にデコードする方式である。
先ず、図1について説明する。図1による方法は、大きく、[フロー分析段階→適合性分析段階→ペイロード組立段階→フローテーブル管理段階→圧縮解凍/デコード段階]を含んでなる。このとき、発明の趣旨から、フローテーブル管理段階は、その流れからみて、適合性分析段階以降であればいつ行われても同じ結果を示すことは当業者にとって当然である。このため、本発明及びその説明/図面において、フローテーブル管理段階をたとえ第4段階で表現したが、これは順序を示すものではない(以下、同じ)。
(A)第1段階(フロー分析段階)においては、受信したTCP/IPパケットが多数のHTTPパケットのうち既に受信されたHTTP応答パケットと関連する残りのパケットであるか(すなわち、フローに相当するか)を判断する。[もちろん、フローの最初のパケットであり、且つ、適合性(ハングル/日本語デコード可能性)が確認された場合には、フローテーブルが生成される。]
この段階においては、受信されたパケットがフローの最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ、HTTP応答パケットではないフローであるか、あるいは、ハングル/日本語デコードが不可能なフローであることが最初のパケットにより既に確認されたものであるため、さらなる措置なしに終了する。もちろん、ヘッダー情報がないパケットであり、且つ、フローテーブルにもないパケットであれば、いかなる処理なしに終了した後、直ちに次のパケットがあるかどうかを調べるような順序に従う。
最初のパケットではなく、且つ、当該フローテーブルが存在すれば、HTTP応答パケットであり、且つ、ハングル/日本語デコードが可能なフローであることが最初のパケットにより既に確認されたものであるため、前記フローに相当する連続するパケットとして認識し、第2段階(適合性分析段階)を経ることなく直ちに第3段階(ペイロード組立段階)に移行する。ここで、「パケットの当該フローテーブル」とは、パケットなどの出発/目的IPアドレス、出発/目的ポートを有する先行パケットの情報が格納されたフローテーブルのことを言う。
受信されたパケットがフローの最初のパケットであれば、第2段階(適合性分析段階)に移行する。
(B)第2段階(適合性分析段階)においては、フローの最初のパケットである場合、受信パケットが応答パケットであるか、及びハングルまたは日本語デコードが可能であるかを確認してそれに対するフローテーブルを生成する。
すなわち、前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、2バイトハングルまたは日本語デコードが可能なパケットであれば、フローテーブルを生成した後に第3段階(ペイロード組立段階)に移行する。一方、HTTP応答パケットがないか、あるいは、2バイトハングルまたは日本語デコードが不可能なパケットであれば、さらなる措置なしに終了する。
前記フローテーブルは、フローを識別可能な情報(出発IPアドレス、目的IPアドレス、出発ポート、目的ポート、受信した時間、識別子、フラグ、断片化オフセットなどの全部または一部)及び削除予約フラグ及びフロー維持時間などのフィールドから構成してもよい。
このようにして生成されたフローテーブルは、第1段階(フロー分析段階)においてフローの最初ではないパケットのフローテーブルであるかどうかを確認するために活用され、下記の第4段階(フローテーブル管理段階)において管理される。
一方、本発明は、前記フローテーブルを第2段階前に生成していて、適合性がないと判断されれば初期化することを排除しない。
第2段階の詳細については、後述する。
(C)第3段階(ペイロード組立段階)においては、ハングルまたは日本語デコード適合性が確認されたフローのパケットHTTPペイロードのストリングを組立/格納する段階である。
すなわち、HTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロードを格納する。このとき、最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケット(n番目パケット)のペイロード(pn)を既存に格納されている当該フローのペイロードが組立されたストリング(p1+p2+…pn−1)に連結して追加されたペイロードが組立されたストリング(p1+p2+…pn−1+pn)を生成する。
(D)第4段階(フローテーブル管理段階)は、ハングルまたは日本語文字列が多数のHTTPパケットに跨っているとき(すなわち、パケットがフローに受け渡されるとき)、最初のHTTPパケットが応答パケットであり、ハングルまたは日本語変換が可能な場合に後続する予定の同一フローのパケットを直ちにペイロード組立するためにフローテーブルを挿入、維持、削除する段階である。すなわち、パケットがフローの最後のパケットである場合にフローテーブルを初期化して終了し、最後のパケットではない場合にフローテーブルを更新し、前記1段階(フロー分析段階)に移行する。
受信されたパケットが最後のパケットである場合(すなわち、パケットのTCPヘッダーにFINフラグが設定された場合)、これをフローテーブルの削除予約フラグに記録しておき、この記録の有無を確認することによりパケットが最後のパケットである場合にフローテーブルを削除(初期化)する。また、もし、フロー維持時間フィールドがある場合、後続パケットが所定のフロー維持時間(例えば、30秒)内に受信されなければデコードを終了し、フローテーブルを削除(初期化)することができる。
以上の過程を通じて受信されたパケットのペイロードを組立することが可能になり、フローの最後のパケットのペイロードまで組立された後にはフローテーブルの全ての情報が削除(初期化)される。
(E)第5段階(圧縮解凍/デコード段階)は、所定のフローのペイロード組立が完了された後にこれを一括してデコードする段階である。
すなわち、前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットが圧縮されたものであれば、フローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後にハングルまたは日本語にデコードし、圧縮されたものではなければ、ボディをそのままハングルまたは日本語にデコードする。デコード方法の詳細については後述する。
本発明の請求項1は第5段階までに関するものであり、請求項5は第6段階(コンテンツ分析段階)が追加されたものである。
(F)第6段階(コンテンツ分析段階)は、上述した過程によりデコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析する段階である。詳細は後述する。
図示はしないが、上述したハングルまたは日本語のデコード方法(第1段階〜第5段階)は、(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の適合性分析部に伝達し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記のペイロード組立格納部に伝達するヘッダー分析部と、(B)前記パケットのHTTPヘッダーまたはボディの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記のペイロード組立格納部に伝達し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する適合性分析部と、(C)前記適合性分析部においてHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロードを格納し、前記ヘッダー分析部において最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケットのペイロードを既存に格納されている当該フローの組立されたペイロードに連結してフローを組立するペイロード組立格納部と、(D)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新するフローテーブル管理部と、(E)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットが圧縮されたものであればフローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後に前記フローのHTTPペイロードのストリングからハングルまたは日本語をデコードする圧縮解凍/デコード部と、を備えるHTTPパケットのハングルまたは日本語デコード装置により行われうる。
一方、本発明においては、(1)上述したように、一旦所定のフローに相当するパケットの全てのペイロードを組立した後に圧縮有無を確認して圧縮を解凍する方式(図1)も採用可能であるが、(2)先ず、所定のフローが圧縮パケットであるかどうかを確認しておき、パケットのペイロードを組立した後に圧縮を解凍する方式も採用可能である。後者の方式に関するフローチャートを図2に示す。図2に例示する方式は、図1の方式に比べてやや複雑な構成であるものの、究極的に同じ概念に基づくものであり、同じ結果が得られる。図1についての説明部分を参照すれば、図2を容易に理解することができるため、さらなる説明を省略する。
図3は、本発明によるハングルまたは日本語のデコード方法及びその結果として得られたウェブコンテンツを分析する方法のさらに他の例を示す全体フローチャートである。これは、パケットごとにペイロードを順次にデコードし、直ちにパターンマッチングなどの方法によりコンテンツを分析する方式である。
図3の例において、フロー分析段階、適合性分析段階及びフローテーブル管理段階は図1の例と同様であるため、それについての説明を省略し、圧縮解凍/デコード段階(第3段階)及びパターンマッチング段階(第4−1段階)についてのみ説明する。
(A)第1段階(フロー分析段階)は、図1と同様である。
(B)第2段階(適合性分析段階)は、図1と同様である。
(C)第3段階(圧縮解凍/デコード段階)は、パケットが圧縮されたものであればパケットペイロードの圧縮を解凍した後に、また、圧縮されたものでなければそのまま前記パケットのHTTPペイロードのストリングからハングルまたは日本語をデコードする段階である。すなわち、フローを組立せずにパケット別に直ちにデコードする。このため、この段階においてデコードされたコンテンツはフロー全体が保有したコンテンツの一部(部分)となる。
(D)第4−1段階(パターンマッチング段階)は、パケット別ペイロードがデコードされたハングルまたは日本語ウェブコンテンツの一部に対して所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析する段階である。
(E)第4−2段階(フローテーブル管理段階)は、図1と同様である。
この例によれば、特定の時点においてはコンテンツの一部に関する内容が分析されるものの、所定のフローに相当する全てのパケットが第3段階と第4−1段階を経ると、結局はフロー全体が有するウェブコンテンツに関する内容が分析される。これにより、結果は図1に例示する方式による結果と同様になる。
一方、2バイトにエンコードされたハングルまたは日本語文字列の上位1バイトと下位1バイトが分けられて相異なるパケットのペイロードに載せられて伝達される場合が発生する。この場合に鑑みて、フローテーブルのフィールドには1バイト格納空間が追加されることが好ましい。この場合、前パケット(n−1番目)においてデコード後に最後の1バイトが残ると、これをフローテーブルの1バイト格納空間に格納しておく。次いで、次のパケット(n番目)をデコードするときにフローテーブルの1バイト格納空間に上位1バイトが格納されているかを確認し、上位1バイトが存在すれば現在パケット(n番目)の先頭に追加した後にデコードを行う。
本発明の第2段階(適合性分析段階)においては、フローの最初のパケットであり、且つ、前記パケットに対するフローテーブルが存在しない受信パケットが応答パケットであるか、及びハングルまたは日本語デコードが可能であるかを確認し、両方とも満足する場合にそのパケットに対するフローテーブルを生成する。もちろん、ヘッダー情報もなく、フローテーブルもないパケットであれば、いかなる措置なしに流れを終了する。
先ず、フローの最初のパケットがHTTP応答パケットであるかどうかを確認する必要がある。
すなわち、HTTPヘッダーに「HTTP/1.1 200 OK」というストリングを探索してHTTP応答パケットの有無を調べる。参考までに、TCP連結のための3段階ハンドシェーク方法により、HTTP要求パケット、それに対するサーバ側のACKが送られてきた後にユーザが要請したHTTP応答パケットが伝送される。
次いで、受信されたHTTP応答パケットに対してHTTPのヘッダーとペイロードの情報のうち一部を抽出してハングルまたは日本語デコードが可能であるか、及び可能であれば、どのエンコード型であるかを調べる。確認されたエンコード型はフローテーブルの当該フィールドに記録される。
例えば、HTTPヘッダーにシグニチャー1(「Content-Type:XXX」及び{「charset=YYY」または「encoding=YYY」}、ここで、XXXが「text/html」または「text/xml」)が存在し、YYYが(1)ハングルエンコード型であるUTF−8、utf−8、EUC−KR、euc−kr、KS_C_5601またはks_c_5601であるか、あるいは、(2)日本語エンコード型であるUTF−8、utf−8、EUC−JP、euc−jp、SHIFT−JIS、Shift−JISまたはshift−jisである場合にそれぞれハングルまたは日本語エンコードが可能なパケットとして解釈する。ハングルまたは日本語エンコードが可能なパケットであることが認められた場合、前記パケットの情報を格納するフローテーブルを生成し、第3段階(ペイロード組立段階)に移行する。それ以外の場合、いかなる措置なしに終了する。
一方、デコードされるコンテンツのサイズ(長さ)を知る必要がある場合がある。コンテンツのサイズは「Content-Length:」と「Transfer-Encoding:chunked」を通じて求めることが可能である。前者からはコンテンツの長さを直ちに求めることが可能であるのに対し、後者の場合にはコンテンツと関連するパケット(すなわち、フロー)を受信し終わった後に求めることができる。例えば、Content-LengthはHTTPヘッダーフィールドのうちコンテンツの長さを直接的に表示するフィールドであり、「Content-Length:ZZZ」のように表現され、コンテンツの長さが「ZZZ」バイトであることを意味する。Transfer-Encodingについては、圧縮解凍と関連する部分において説明する。
要するに、本発明において、デコード適合性分析段階は、受信されたパケットが応答パケットであるか、及びハングルまたは日本語デコードが可能であるかを調べて、これに相当するパケットだけをろ過する過程である。ハングルまたは日本語をどのエンコード方式を用いてエンコードしたかを調べ、所定の条件を満足するパケットに対しては、出発地IPアドレス、目的地IPアドレス、出発地ポート番号、目的地ポート番号、削除予約フラグ、フロー維持時間、使用されたエンコード型、HTTPパケットのペイロード長、圧縮有無フラグ情報などが格納されたフローテーブルを生成する。
本発明において、ペイロード組立段階は、上述した適合性分析段階を経たパケットのフローに相当する全てのパケットのペイロードをパケット順序に従い連結して格納する段階である。その詳細は上述の通りである。
図4は、本発明の圧縮解凍/デコード段階の一例を示す詳細フローチャートである。
図1または図2の場合には、当該フローの全ての情報が組立された後に圧縮解凍/デコードされ、図3の場合には当該フローのパケット別に順次に圧縮解凍/デコードされる点で相違点があるが、実際に「圧縮解凍/デコード」は同様に行われるため、まとめて説明する。
(1)(圧縮解凍過程)圧縮解凍/デコード段階においては、先ず、現在パケットが圧縮されたパケットであるかどうかを検査する。これは、シグニチャー3(「Content-Encoding:YYY」、YYY=「gzip」 or 「deflate」)の存否により判断する。「gzip」という文字列の代わりに「x-gzip」、「deflate」の代わりに「x-deflate」という文字列がきたときにもそれぞれgzip、deflateは同じ圧縮アルゴリズムであると理解する。シグニチャー3が存在する場合、フローテーブルに圧縮フラグを設定し、利用された圧縮アルゴリズムを記録する。
圧縮されているデータを解凍する上で最も重要なのは、データの無欠性とそのサイズである。また、未圧縮HTTPフローであるとしても、完全なHTML/XML文書単位で分析をするためには、データのサイズを知ることは必要である。
HTTPにおいて伝達しようとするデータのサイズは、上述したように、「Content-Length」(図4におけるシグニチャー1)フィールドと、「Transfer-Encoding」(図4におけるシグニチャー2)フィールドを用いてウェブブラウザーに知らせる。もし、HTTPヘッダーにシグニチャー1が設定されていると、直ちにそのサイズを知ることができるため、次の段階に移行することができる(400)。しかしながら、シグニチャー2が設定されていると、全体的にデータを検査していきながら、chunkデータのサイズと実際データ、chunk区切子を区分して格納しなければならない(410)。すなわち、シグニチャー2が設定されているHTTPパケットの場合にはヘッダーとペイロードを区分する区切子である
の形態で伝達される。このため、一つのフロー内においてそれぞれのchunkデータごとに16進数形態のサイズ値を抽出して加算した値が実際に伝送しようとする総データのサイズとなる(420)。さらに、伝送するデータが最後である旨を知らせるために、当該パケットの最後の部分にシグニチャー3を一緒に載せて伝送する。もし、シグニチャー3がなければ、当該フローがパケットを完全に受信しなかったと判断し、当該フローは廃棄する(430)。上記の過程を経ると、ウェブサーバが伝送しようとするデータのサイズを知ることが可能になる。
の形態で伝達される。このため、一つのフロー内においてそれぞれのchunkデータごとに16進数形態のサイズ値を抽出して加算した値が実際に伝送しようとする総データのサイズとなる(420)。さらに、伝送するデータが最後である旨を知らせるために、当該パケットの最後の部分にシグニチャー3を一緒に載せて伝送する。もし、シグニチャー3がなければ、当該フローがパケットを完全に受信しなかったと判断し、当該フローは廃棄する(430)。上記の過程を経ると、ウェブサーバが伝送しようとするデータのサイズを知ることが可能になる。
データのサイズを知った後、圧縮アルゴリズムが適用されたデータに対して圧縮解凍過程を経る。HTTPにおいて最も多用される圧縮アルゴリズムであるgzipは、10バイトのgzipヘッダーフィールドと圧縮されたデータ、4バイトのCRC32フィールド、4バイトのISIZEフィールドから構成されている。10バイトのヘッダーフィールドのうちフラグの設定有無によってヘッダーと圧縮データとの間にさらにオプションフィールドがありうるが、HTML/XMLを伝送するHTTPにおいては上述した基本的な部分だけを考慮すればよい。また、gzipは内部の圧縮データを生成するためにdeflateアルゴリズムを使用する。すなわち、そこにgzipヘッダーとその他のフィールドが付加されてgzipフォーマットの圧縮データが生成される。ほとんどのgzipとdeflateはZlib library(http://www.zlib.net、RFC1950)を用いて圧縮し且つ解凍する。本発明においても、Zlib libraryを適用して圧縮を解凍することができる。
HTTPパケットに適用された圧縮アルゴリズムがdeflateである場合、圧縮されたデータとそのデータサイズが正確であれば、Zlib libraryにおいて支援する関数を用いて圧縮を解凍することができる(450)。但し、いくつかのzlibヘッダーを含まずにデータを伝送するウェブサーバがあり、2バイトのZlibヘッダーを圧縮データの先頭に挿入して圧縮解凍を行う場合もある。
このような過程を経て圧縮されていたペイロードが圧縮解凍される。もちろん、受信されたパケットが圧縮されたものではなければ、圧縮解凍過程は省略される。
(2)(デコード過程)圧縮解凍されたり、最初から圧縮されていないペイロードをハングルまたは日本語にデコードする。図1または図2の場合、組立が完了されたフロー全体をデコードした後にパターンマッチングを行うことも可能であるが、フローをデコードすると同時にパターンマッチングを行うことでコンテンツ分析をすることも可能である。もちろん、図3の場合には、当然のことながら、パケット別に順次にデコードされた部分を直ちにパターンマッチングする。
もちろん、パケットがUTF−8などの多国語を支援するエンコード型であれば、エンコードされた3バイトを2バイトのユニコード値に変換する。
ハングルまたは日本語の有無は変換された2バイト値により判断する。(a)ユニコード文字コードチャート(http://www.unicode.org/charts/)を参照すれば、0x1100〜0x11FF(ハングル字母)、0xFFA1〜0xFFDC(半角字母)、0x3130〜0x318F(ハングル互換字母)、0xAC00〜0xD7AF(ハングル音節)がハングルを示すコード範囲であり、(b)0x3040〜0x309F(ひらがな)、0x30A0〜0x30FF(カタカナ)、0xFF00〜0xFFEF(全角ローマ字及び半角カタカナ)、0x4E00〜0x9FAF(CJK統合漢字−共通及び非共通漢字)、0x3400〜0x4DBF(CJK統合漢字拡張漢字A集合-非常用漢字)が日本語を示すコード範囲である。
デコードされた2バイトがこの範囲内のコード値を有している場合、若しくは、ユニコードテーブルを参照可能な場合、UTF−8でエンコードされた文書がハングルまたは日本語を含んでいるかどうかを知ることができる。すなわち、下記表1に示す方式によりエンコードが行われる。
例えば、パケット内において「上」という文字はEC9C84の3バイトで表現され、二進数としては11101100 10011100 10000100で表現される。太字だけを組み合わせると、1100−0111−0000−0100のようになり、16進数で表現すれば、C704の「上」(U+C704)というユニコード値を有することが分かる。このような方式によりUTF−8においてハングルにデコードすることができる。
圧縮解凍/デコードを経たデータに対して、パターンマッチングを経るコンテンツ分析段階が行われる。
パターンマッチングは、上述したように、組立が完了されたフロー全体をデコードした後に行うことも可能であるが、フローをデコードすると同時に行うことも可能である。この過程は、大きく、キーワードを格納、管理するコンテンツ分類辞書と、コンテンツ分類関数若しくはアルゴリズムを活用して行われる。
(1)(コンテンツ分類辞書)コンテンツ分類のためのカテゴリ区分方法、区分数、各カテゴリに対応するキーワードの種類及び数などはユーザが任意に設定することができる。
例えば、大型ポータルサイトの分類を参照して、ショッピング/宅配、成人、株式/金融、インターネットコミュニティ、ゲーム、音楽、映画、メール/メッセンジャー、教育、ニュース/ウェブサービスなどにカテゴリを分類することができる。次いで、各カテゴリ別にキーワードを相互排他的に(すなわち、一つのキーワードは一つのカテゴリに割り付けられるように)選定して格納する。
このように選定/格納されたデータベースを「コンテンツ分類辞書」と称する。
ここでは、例示的に簡単なカテゴリ分類方法を提示(表2)し、例をとって説明する。表2においてはハングルだけで表現したが、日本語でも同じコンテンツ分類辞書を作成可能であることはいうまでもない。必要に応じて、英語などの他の言語よりなるキーワードも追加可能である。キーワードは、1カテゴリ当たりに15〜20個程度に選定することが良い。
(2)(分類関数/アルゴリズム)次いで、キーワードパターンマッチングによるコンテンツ分類が行われる。
パケットペイロードのデータを基にコンテンツを分類するこの方法は、基本的に、テキストデータの文書分類と一脈相通するといえる。すなわち、それぞれのカテゴリに属するキーワードがテキスト文書にいかに多く属しているかの情報を基にベイジアン学習若しくはSVMなどの機械学習を用いてコンテンツを分析する。すなわち、HTML/XML文書単位で統合されたパケットのペイロードにおいてキーワードマッチングを通じてカテゴリ別のキーワードマッチング頻度数を計算する。この情報を基にテキストデータを分類する上で最も良好な性能を発揮すると知られているアルゴリズムの一つであるベイジアン学習とSVM方法を用いて当該HTML/XML文書単位のパケットがいかなるコンテンツを格納しているかを機械的に判断することになる。
一般的に、テキストデータマイニングにおいては、マシンランニングアルゴリズムに入れるデータをbags-of-wordsなどの方法を利用する。このような方法は高い正確度を提供するが、かなり長い演算時間を要する。
1カテゴリ当たりのキーワード数の違いが激しい場合、正規化の概念を適用してキーワードヒット数(マッチングされたカウント)を当該カテゴリの総キーワード数で割ることにより、下記表3に示すデータを得る。
−N:ハングルデコードを通じての総文書数(最後の文書番号)
−K:コンテンツカテゴリ総数(最後のカテゴリ番号)
−Fsimple:当該文書内において最初に発見されたキーワードが属するカテゴリ
−文書の実際のカテゴリ番号:オプション。検証のためにマニュアル的に求めた当該文書の実際カテゴリ。
−K:コンテンツカテゴリ総数(最後のカテゴリ番号)
−Fsimple:当該文書内において最初に発見されたキーワードが属するカテゴリ
−文書の実際のカテゴリ番号:オプション。検証のためにマニュアル的に求めた当該文書の実際カテゴリ。
上記のデータを得た場合、下記のコンテンツ分類関数を利用することができる。
Fsimple:当該文書内において最初に発見されたキーワードが属するカテゴリ
Fmax:当該文書内において最も多いキーワードヒットを記録したカテゴリ
Fsvm:上記のカテゴリ別ヒット数情報を基にSVMマシンランニングアルゴリズムを通じて分類された結果
Fmax:当該文書内において最も多いキーワードヒットを記録したカテゴリ
Fsvm:上記のカテゴリ別ヒット数情報を基にSVMマシンランニングアルゴリズムを通じて分類された結果
実際に必要な情報(正確度若しくは速度など)に合わせて分類関数を利用することができる。これは、全数調査若しくはサンプリングを通じて検証されたデータとの比較により決定すればよい。
Claims (9)
- フロー情報が格納されるフローテーブルが介在されたハングルまたは日本語のデコード方法において、
(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(ペイロード組立段階)に移行する第1段階(フロー分析段階)と、
(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後、下記の第3段階(ペイロード組立段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、 (C)前記段階(B)においてHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロードを格納し、前記段階(A)において最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケットのペイロードを既存に格納されている当該フローのペイロードに連結してフローを組立する第3段階(ペイロード組立段階)と、
(D)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新して前記第1段階に移行する第4段階(フローテーブル管理段階)と、
(E)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであれば、フローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後、(2)圧縮されたものではなければそのまま前記フローのHTTPペイロードのストリングからハングルまたは日本語をデコードする第5段階(圧縮解凍/デコード段階)と、
を含んでなることを特徴とするHTTPパケットにおけるハングルまたは日本語のデコード方法。 - 前記フローテーブルは、フローを識別可能な情報フィールド、削除予約フラグフィールド、フロー維持時間フィールド、ハングルまたは日本語エンコード型フィールド、HTTPパケットのペイロード長フィールド及び圧縮有無フラグ情報フィールドを含むことを特徴とする請求項1に記載のHTTPパケットにおけるハングルまたは日本語のデコード方法。
- 前記第2段階(適合性分析段階)において、
HTTPヘッダーにシグニチャー1(「Content-Type:XXX」及び{「charset=YYY」または「encoding=YYY」}、ここで、XXXが「text/html」または「text/xml」)が存在し、YYYが(1)ハングルエンコード型であるUTF−8、utf−8、EUC−KR、euc−kr、KS_C_5601またはks_c_5601であるか、(2)日本語エンコード型であるUTF−8、utf−8、EUC−JP、euc−jp、SHIFT−JIS、Shift−JISまたはshift−jisである場合にフローテーブルを生成して第3段階(ペイロード組立段階)に移行することを特徴とする請求項1に記載のHTTPパケットにおけるハングルまたは日本語のデコード方法。 - 請求項1から請求項3のいずれかに記載の方法を行うための装置であり、
(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の適合性分析部に伝達し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記のペイロード組立格納部に伝達するヘッダー分析部と、
(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記のペイロード組立格納部に伝達し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する適合性分析部と、
(C)前記適合性分析部においてHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能であると分析されたパケットのペイロードを格納し、前記ヘッダー分析部において最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在すると確認されたパケットのペイロードを既存に格納されている当該フローのペイロードに連結してフローを組立するペイロード組立格納部と、
(D)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新するフローテーブル管理部と、
(E)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットが圧縮されたものであればフローの最後のパケットまで組立されたフローのペイロードの圧縮を解凍した後に前記フローのHTTPペイロードのストリングからハングルまたは日本語をデコードする圧縮解凍/デコード部と、
を備えてなることを特徴とするHTTPパケットにおけるハングルまたは日本語のデコード装置。 - 請求項1から請求項3のいずれかに記載の方法によりデコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析することを特徴とするハングルまたは日本語ウェブコンテンツの分析方法。
- フロー情報が格納されるフローテーブルが介在されたハングルまたは日本語ウェブコンテンツの分析方法において、
(A)受信されたパケットのヘッダーを分析して前記パケットがフローの最初のパケットであるかどうかを確認し、(1)最初のパケットである場合に下記の第2段階(適合性分析段階)に移行し、(2)最初のパケットではなく、且つ、前記パケットに対するフローテーブルが存在しなければ終了し、存在すれば下記の第3段階(圧縮解凍/デコード段階)に移行する第1段階(フロー分析段階)と、
(B)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、前記パケットがHTTP応答パケットであると共に、ハングルまたは日本語デコードが可能なパケットであれば、前記パケットに対するフローテーブルを生成した後に下記の第3段階(圧縮解凍/デコード段階)に移行し、HTTP応答パケットではないか、あるいは、ハングルまたは日本語デコードが不可能なパケットであれば終了する第2段階(適合性分析段階)と、
(C)前記パケットのHTTPヘッダーまたはペイロードの情報を参照して、(1)前記パケットが圧縮されたものであればパケットペイロードの圧縮を解凍した後、(2)圧縮されたものでなければそのまま前記パケットのHTTPペイロードのストリングからハングルまたは日本語をデコードする第3段階(圧縮解凍/デコード段階)と、
(D)デコードされたハングルまたは日本語ウェブコンテンツと所定のキーワードセットとのパターンマッチングを行うことにより前記ウェブコンテンツの内容を分析する第4−1段階(パターンマッチング段階)と、
(E)前記パケットがフローの最後のパケットである場合にフローテーブルを初期化し、最後のパケットではない場合にフローテーブルを更新し、前記第1段階に移行する第4−2段階(フローテーブル管理段階)と、
を含んでなることを特徴とするHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法。 - 前記フローテーブルは、フローを識別可能な情報フィールド、削除予約フラグフィールド、フロー維持時間フィールド、1バイト格納空間フィールド、ハングルまたは日本語エンコード型フィールド、HTTPパケットのペイロード長フィールド及び圧縮有無フラグ情報フィールドを含むことを特徴とする請求項6に記載のHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法。
- 前記第2段階(適合性分析段階)において、
HTTPヘッダーにシグニチャー1(「Content-Type:XXX」及び{「charset=YYY」または「encoding=YYY」}、ここで、XXXが「text/html」または「text/xml」)が存在し、YYYが(1)ハングルエンコード型であるUTF−8、utf−8、EUC−KR、euc−kr、KS_C_5601またはks_c_5601であるか、あるいは、(2)日本語エンコード型であるUTF−8、utf−8、EUC−JP、euc−jp、SHIFT−JIS、shift−JISまたはshift−jisである場合にフローテーブルを生成し、第3段階(圧縮解凍/デコード段階)に移行することを特徴とする請求項6に記載のHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法。 - 前記第3段階(圧縮解凍/デコード段階)及び第4−2段階(フローテーブル管理段階)において、
(a)前記パケット(n)がフローの最後のパケットではない場合、ハングルまたは日本語デコードを行い、最後の1バイトが残留するときにこれをフローテーブルの1バイト格納空間に一時的に格納し、
(b)次のパケット(n+1)の処理時に前記一時的に格納された1バイト情報を次のパケット(n+1)のペイロード先端に添付した後にデコードすることを特徴とする請求項6に記載のHTTPパケットにおけるハングルまたは日本語ウェブコンテンツの分析方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20090064082A KR101114229B1 (ko) | 2009-07-14 | 2009-07-14 | Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011024179A true JP2011024179A (ja) | 2011-02-03 |
Family
ID=43613287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009210495A Pending JP2011024179A (ja) | 2009-07-14 | 2009-09-11 | Httpパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2011024179A (ja) |
KR (1) | KR101114229B1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011102312A1 (ja) * | 2010-02-16 | 2011-08-25 | 日本電気株式会社 | パケット転送装置、通信システム、処理規則の更新方法およびプログラム |
US10326245B1 (en) | 2018-03-29 | 2019-06-18 | Cosemi Technologies, Inc. | Light illuminating data communication cable |
US10734768B2 (en) | 2018-05-16 | 2020-08-04 | Cosemi Technologies, Inc. | Data communication cable assembly including electromagnetic shielding features |
US11057074B2 (en) | 2019-07-18 | 2021-07-06 | Cosemi Technologies, Inc. | Data and power communication cable with galvanic isolation protection |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101985579B1 (ko) * | 2016-12-21 | 2019-09-03 | 정승화 | 선택 디코딩 알고리즘을 구비한 패킷 분석장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003229907A (ja) * | 2001-12-21 | 2003-08-15 | Agere Systems Inc | ネットワーク・プロセッサ内のデータ・ブロックの再組立てのための方法および装置 |
-
2009
- 2009-07-14 KR KR20090064082A patent/KR101114229B1/ko active IP Right Grant
- 2009-09-11 JP JP2009210495A patent/JP2011024179A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003229907A (ja) * | 2001-12-21 | 2003-08-15 | Agere Systems Inc | ネットワーク・プロセッサ内のデータ・ブロックの再組立てのための方法および装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011102312A1 (ja) * | 2010-02-16 | 2011-08-25 | 日本電気株式会社 | パケット転送装置、通信システム、処理規則の更新方法およびプログラム |
US8737215B2 (en) | 2010-02-16 | 2014-05-27 | Nec Corporation | Packet forwarding apparatus, communication system, process rule update method, and program |
JP5720668B2 (ja) * | 2010-02-16 | 2015-05-20 | 日本電気株式会社 | パケット転送装置、通信システム、処理規則の更新方法およびプログラム |
US10326245B1 (en) | 2018-03-29 | 2019-06-18 | Cosemi Technologies, Inc. | Light illuminating data communication cable |
US10734768B2 (en) | 2018-05-16 | 2020-08-04 | Cosemi Technologies, Inc. | Data communication cable assembly including electromagnetic shielding features |
US11057074B2 (en) | 2019-07-18 | 2021-07-06 | Cosemi Technologies, Inc. | Data and power communication cable with galvanic isolation protection |
Also Published As
Publication number | Publication date |
---|---|
KR20110006447A (ko) | 2011-01-20 |
KR101114229B1 (ko) | 2012-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101027299B1 (ko) | 웹 서비스 통신의 히스토리 구동 최적화를 위한 시스템 및방법 | |
US7698269B2 (en) | URL shortening and authentication with reverse hash lookup | |
JP3859313B2 (ja) | タグ文書の圧縮装置および復元装置,圧縮方法および復元方法,圧縮/復元装置および圧縮/復元方法並びに圧縮,復元もしくは圧縮/復元プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN109818930B (zh) | 一种基于tcp协议的通讯文本数据传输方法 | |
CN103348334B (zh) | 云***以及在云***中的文件压缩及传送方法 | |
US7821427B2 (en) | Data processing system and method | |
US8583743B1 (en) | System and method for message gateway consolidation | |
US8120515B2 (en) | Knowledge based encoding of data with multiplexing to facilitate compression | |
KR101114229B1 (ko) | Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법 | |
US20130262486A1 (en) | Encoding and Decoding of Small Amounts of Text | |
CN108512898B (zh) | 文件推送方法、装置、计算机设备和存储介质 | |
US6370581B2 (en) | Method, apparatus, and product for transmitting multibyte characters in a network | |
CN103401850A (zh) | 一种报文过滤方法及装置 | |
US20120323882A1 (en) | Data extraction system, terminal apparatus, program of the terminal apparatus, server apparatus, and program of the server apparatus | |
CN104023046B (zh) | 移动终端识别方法和装置 | |
EP1634423B1 (en) | System and method for compressing url request parameters | |
WO2013097812A1 (zh) | 一种下载字库文件的方法和*** | |
CN103793508B (zh) | 一种加载推荐信息、网址检测的方法、装置和*** | |
US20080313291A1 (en) | Method and apparatus for encoding data | |
US7814408B1 (en) | Pre-computing and encoding techniques for an electronic document to improve run-time processing | |
US20070027918A1 (en) | Mail processing server, mail processing method, and mail processing program | |
WO2008121985A1 (en) | Multi-language text fragment transcoding and featurization | |
US20070300147A1 (en) | Compression of mark-up language data | |
KR100959877B1 (ko) | Http 패킷에서 한글 디코딩 방법 및 장치 | |
KR100489884B1 (ko) | 전자메일에서의 가변너비 문자 인코딩 변환방법 및 장치,그리고 이 방법을 실행하는 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120403 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120911 |