JP5131915B2 - パケット符号化方法および装置ならびに復号方法および装置 - Google Patents

パケット符号化方法および装置ならびに復号方法および装置 Download PDF

Info

Publication number
JP5131915B2
JP5131915B2 JP2008093032A JP2008093032A JP5131915B2 JP 5131915 B2 JP5131915 B2 JP 5131915B2 JP 2008093032 A JP2008093032 A JP 2008093032A JP 2008093032 A JP2008093032 A JP 2008093032A JP 5131915 B2 JP5131915 B2 JP 5131915B2
Authority
JP
Japan
Prior art keywords
packet
data
encoded
encoding
cache table
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.)
Expired - Fee Related
Application number
JP2008093032A
Other languages
English (en)
Other versions
JP2009246816A (ja
Inventor
彰宏 中尾
周 山本
清秀 中内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
University of Tokyo NUC
Original Assignee
National Institute of Information and Communications Technology
University of Tokyo NUC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Institute of Information and Communications Technology, University of Tokyo NUC filed Critical National Institute of Information and Communications Technology
Priority to JP2008093032A priority Critical patent/JP5131915B2/ja
Publication of JP2009246816A publication Critical patent/JP2009246816A/ja
Application granted granted Critical
Publication of JP5131915B2 publication Critical patent/JP5131915B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パケット符号化方法および装置ならびに復号方法および装置に係り、特に、ピア・ツー・ピア通信に係るトラヒックの削減に好適なパケット符号化方法および装置ならびに復号方法および装置に関する。
近年の高速ADSLやFTTHを利用したインターネット接続の普及に伴い、動画や音楽などの大容量コンテンツのファイル交換を定常的に行うユーザが増加し、これら一部のユーザによってISP(Internet Services Provider)ネットワークの帯域が占有される現象が社会問題を引き起こしている。
大容量コンテンツのファイル交換方式として、従来のクライアント/サーバ型のサービス形態に代わり、特許文献1に開示されているような、サーバを介さずにコンピュータ端末同士が直接通信するピア・ツー・ピア(P2P:Peer to peer)方式が普及し、特に、コンテンツファイルをピース状に細分化し、複数のピアが分散的にファイルを共有するBitTorrent(ビットトレント)が急激に増えている。
図21は、BitTorrentのファイル交換手順を示したブロック図であり、映画や音楽などのコンテンツファイルは、ピース状に分割された多数のファイル片(以下、単にピースと表現する)と、後述するトラッカーへのリンクおよび各ピースのハッシュ値を含むメタ情報ファイルとに分割される。このメタ情報ファイルは、BitTorrentではトレントファイル(.torrent)と呼ばれ、所定のWebサーバに配置される。前記ピースは、ネットワーク上の多数のピアPi (i=1,2…N) へ分散配置される。
コンテンツファイルのダウンロードを希望するピアP1は、そのトレントファイルが保存されているWebサーバにアクセス(1)して当該トレントファイルを取得(2)し、これをトラッカーへ送信(3)してピア情報を要求する。前記トラッカーは、トレントファイルごとに各ピアPiのIPアドレスを管理するサーバであり、ピア情報要求を受信したトラッカーは、指定されたトレントファイルと対応付けられているピア情報リストを要求元のピアP1へ返信(4)する。ピア情報リストを受信したピアP1は、リストアップされている各ピアPiとの間にP2P接続を確立(5)し、下りリンクを利用してピースをダウンロードする。
ピースを取得したピアP1は、当該ピースから計算されるハッシュ値とトレントファイルに予め登録されている当該ピースのハッシュ値とを比較し、両者が一致すれば正規のピースとして保存する一方、不一致であれば不正ファイルとして破棄する。その後、全てのピースが揃うと、これら全てのピースとトレントファイルとを合成してコンテンツファイルを生成する。その後、ピアP1はファイルの供給ノードとして機能し、各ピアからの要求に応答してピースを上りリンクでアップロードする。
このようなP2Pトラヒックによる帯域圧迫を防止する技術として、特許文献2には、ネットワークの帯域を監視し、帯域が圧迫状態になるとP2Pパケットを識別して破棄する技術が開示されている。
特開2003−114857号公報 特開2008−48131号公報
ISPなどがネットワークの帯域を確保するためにP2Pパケットを無条件で破棄してしまうと、ユーザがファイル交換アプリケーションを利用できなくなるのでサービスの低下を招いてしまう。一方、P2Pパケットをそのまま放置するとP2Pトラフィックがますます増殖し、帯域圧迫が深刻になってユーザがファイル交換アプリケーションを快適に使用できない状況に陥ることが懸念される。
ここで、P2Pトラヒックによる帯域圧迫は、一般的なトラヒック増加に起因した帯域圧迫とは異なり、人気のあるコンテンツファイルの集中的なダウンロードに起因することが多く、このとき、ネットワーク上には同一データのパケットが大量に流れている。そして、このような現象は特にBitTorrentにおいて顕著である。したがって、P2Pパケットのデータを符号化してキャッシュしておけばトラヒック量の削減が期待できる。
しかしながら、可逆な符号化方式では圧縮率が低いので十分な効果が得られない。一方、ハッシュ関数のような不可逆な符号化方式を採用すれば、高い圧縮率を得られるものの復号側での復号処理が困難になる。
本発明の目的は、上記した従来技術の課題を解決し、P2Pによるデータファイル交換量を維持しながら、ネットワーク上のトラヒック量を大幅に削減できるパケット符号化方法および装置ならびに復号方法および装置を提供することにある。
上記の目的を達成するために、本発明のパケット符号化装置は、以下のような手段を含むことを特徴とする。
(1)パケットのデータを不可逆に符号化圧縮する符号化手段と、パケットの符号化データを管理するキャッシュテーブルと、パケットの符号化データを前記キャッシュテーブルから検索する検索手段と、前記キャッシュテーブルに未登録の符号化データを当該キャッシュテーブルに登録するキャッシュ管理手段と、パケットの符号化データが前記キャッシュテーブルに既登録であると、当該パケットのデータを前記符号化データに置き換えて符号化パケットを生成する符号化パケット生成手段と、符号化データが前記キャッシュテーブルに未登録であったパケット、および前記符号化パケットを転送する手段とを含むことを特徴とする。
また、本発明のパケット復号装置は、以下のような手段を含むことを特徴とする。
(2)転送された非符号化パケットのデータを不可逆に符号化圧縮する符号化手段と、データおよびその符号化データを対応付けて管理するキャッシュテーブルと、前記非符号化パケットのデータおよびその符号化データを対応付けて前記キャッシュテーブルに登録するキャッシュ管理手段と、転送された符号化パケットの符号化データを、当該符号化データと前記キャッシュテーブル上で対応付けられているデータに置き換える復号手段とを含むことを特徴とする。
本発明によれば、ネットワーク上で同一のP2Pパケットが同一のイングレス/イーグレス間で複数回転送される場合、一回目以外は全て圧縮率の高い一方向関数により符号化されるので、ネットワーク上のP2Pトラヒック量を効率良く削減できるようになる。
以下、図面を参照して本発明の最良の実施形態について詳細に説明する。図1は、本発明が適用されるネットワークの構成を示したブロック図である。
ISPネットワークNWの各エッジルータER1,ER2,ER3…には、P2Pパケットのペイロード部に格納されているデータを符号化圧縮してキャッシュするキャッシュサーバ10(10a,10b,10c…)が、それぞれ接続されている。各キャッシュサーバ10には、図2に一例を示した符号化テーブル11および復号テーブル12が登録されている。
前記符号化テーブル11では、P2Pパケットのペイロード部に登録されているデータの符号化データ(本実施形態では、ハッシュ値)が、当該P2PパケットがISPネットワークNW内で最後に経由する終端ノードの識別情報(例えば、IPアドレス)と対応付けられて記憶される。前記復号テーブル12では、P2Pパケットのペイロード部のデータおよびそのハッシュ値が、相互に対応付けられて記憶される。
図3は、前記各エッジルータERの主要部の構成を示した機能ブロック図であり、いずれのエッジルータERも同一または同等の構成を備えている。
本発明のエッジルータERは、ネットワークNWの外部から受信したパケットをネットワークNW内のルータに転送し、ネットワークNW内のルータからのパケットをネットワークNW外へ送信するエッジルータとして機能するためのインターフェース1、ルーティング制御部2およびルーティングテーブル3と共に、本発明に固有の機能として、自ノードがP2PパケットをネットワークNWに転送する入力ルータ(ingress:イングレス)として機能するためのイングレス機能部4と、自ノードがP2PパケットをネットワークNWから外部へ転送する出力ルータ(egress:イーグレス)として機能するためのイーグレス機能部5とを備えている。
前記イングレス機能部4において、パケット識別部41は、ISPネットワークNWへ転送するパケットがP2Pパケットであるか否かを識別する。終端ノード識別部42は、P2PパケットがネットワークNW内で最後に経由する終端ノード(イーグレス)を識別する。符号化部43は、P2Pパケットのペイロード部に登録されているデータを不可逆に符号化圧縮する。本実施形態では、前記データが所定のハッシュ関数に適用されてハッシュ値が算出される。
検索部44は、前記P2Pパケットのデータを符号化して得たハッシュ値が前記符号化テーブル11に既登録であるか否かを判定する。キャッシュ管理部45は、未登録のハッシュ値を前記パケットの終端ノード識別情報と対応付けて符号化テーブル11に登録する。P2P符号化パケット生成部46は、データのハッシュ値が符号化テーブル11に既登録であったP2Pパケットの当該データを前記ハッシュ値に置換し、符号化されたP2Pパケット(以下、P2P符号化パケットと表現する)を生成する。
前記イーグレス機能部5において、パケット識別部51は、ネットワークNWから外部へ出力するパケットがP2PパケットおよびP2P符号化パケットのいずれであるかを識別する。符号化部52は、P2Pパケットのデータをハッシュ関数に適用してハッシュ値を算出する。キャッシュ管理部53は、前記P2Pパケットのデータおよびそのハッシュ値を、相互に対応付けて復号テーブル12に登録する。
復号部54は、P2P符号化パケットに登録されているハッシュ値と対応付けられているデータを前記復号テーブル12から読み込み、当該P2P符号化パケットのハッシュ値を前記データに置換してP2Pパケットに復号する。
次いで、フローチャートを参照して第1実施形態の動作を詳細に説明する。ここでは、図1のエッジルータER1に外部から入力したP2Pパケットが、ISPネットワークNWを経由してエッジルータER2から出力される場合を例にして説明する。したがって、本実施形態ではER1がイングレス、ER2がイーグレス(終端ノード)となる。図4はER1の動作を示したフローチャートであり、図5はER2の動作を示したフローチャートである。
ER1では、図4のステップS1において、ネットワーク外部から受信したパケットがP2Pパケットであるか否かが、前記パケット識別部41で識別される。P2Pパケット以外であれば、ルーティング制御部2がルーティングテーブル3に登録されている経路情報に基づいて周知のルーティングを実行し、前記パケットをネットワークNW内の所定の宛先へ転送する。
これに対して、受信パケットがP2PパケットであればステップS2へ進み、当該P2Pパケットの宛先IPアドレスまたは宛先のネットワークアドレス(以下、単に宛先アドレスと表現する)に基づいて、前記終端ノード識別部42によりイーグレス(ここでは、ER2)が識別される。
本実施形態では、後に詳述するように、各ルータがイーグレスとして動作する際に、自ノードのIPアドレスと転送したP2Pパケットの宛先アドレスとを対応付けてDHT(Distributed Hash Table:分散ハッシュテーブル)に記憶するようにしている。したがって、ER1は受信したP2Pパケットの宛先アドレスを検索キーとしてDHTを参照することで、当該P2Pパケットのイーグレスを識別できる。
なお、イーグレスとして動作するルータが自ノードのIPアドレスと転送したP2Pパケットの宛先アドレスとを対応付けて記憶する先は上記のDHTに限定されず、ER1による参照が可能であれば、集中型のデータベースや他の分散型データベースであっても良い。
ステップS3では、前記符号化部43において、前記P2Pパケットのデータがハッシュ関数に適用されてハッシュ値が算出される。ステップS4では、前記P2Pパケットの終端ノード識別情報およびハッシュ値のペアを含むエントリが前記符号化テーブル11に既登録であるか否かが、前記検索部44による検索結果に基づいて判定される。ER1が初めて受信したP2Pパケットであれば、未登録と判定されるのでステップS5へ進む。
ステップS5では、前記P2Pパケットのハッシュ値が、前記終端ノード識別情報と対応付けられて、前記キャッシュ管理部45により符号化テーブル11に新規登録される。なお、ハッシュ値が同一で終端ノード識別情報のみが異なるエントリが既登録であれば、当該エントリに終端ノード識別情報のみが追加登録される。ステップS6では、前記P2Pパケットが他のパケットと同様に前記ルーティング制御部2によりネットワークNWに転送される。
図5へ進み、前記ER1によりネットワークNWへ転送されたP2Pパケットを受信したER2では、ステップS20、21において、当該パケットがP2PパケットおよびP2P符号化パケットのいずれであるかが、前記パケット識別部51により判定され、ここでは、P2Pパケットと判定されるのでステップS22へ進む。ステップS22では、当該P2Pパケットの宛先アドレス(IPアドレスまたはネットワークアドレス)および自ノード(ER2)のIPアドレスのペアがDHT(分散ハッシュテーブル)に登録される。
ステップS23では、前記符号化部52において、前記P2Pパケットのデータが、前記ER1と同一のハッシュ関数に適用されてハッシュ値が算出される。ステップS24では、P2Pパケットのデータおよびそのハッシュ値が、前記キャッシュ管理部53により相互に対応付けられて復号テーブル12に登録される。ステップS25では、前記P2Pパケットが他のパケットと同様に、前記ルーティング制御部2によりネットワークNW外へ転送される。
図4へ戻り、ER1において、前記ネットワークNWへ転送済のP2Pパケットと、終端ノードおよびデータが同一のP2Pパケットが改めて受信されると、ステップS4では、その終端ノード識別情報およびデータのハッシュ値のペアが符号化テーブル11に既登録と判定されるのでステップS7へ進む。ステップS7では、前記P2P符号化パケット生成部46において、前記P2Pパケットのデータが前記ハッシュ値に置換されてP2P符号化パケットが生成される。ステップS8では、当該P2P符号化パケットが前記ルーティング制御部2によりネットワークNWへ転送される。
図5へ進み、ER2は、このP2P符号化パケットをステップS21で受信するとステップS26へ進む。ステップS26では、このP2P符号化パケットのハッシュ値と復号テーブル12上で対応付けられているデータが読み込まれる。ステップS27では、前記復号部54において、前記P2P符号化パケットのハッシュ値が前記読み込まれたデータに置き換えられてP2Pパケットに復号される。ステップS28では、当該P2Pパケットが前記ルーティング制御部2によりネットワークNW外へ転送される。
本実施形態によれば、ISPネットワークNW上で同一のP2Pパケットが同一のイングレス/イーグレス間で複数回転送される場合、一回目以外は全て、そのデータが圧縮率の高い一方向関数により符号化されるので、ネットワーク上のP2Pトラヒック量を効率良く削減できるようになる。
さらに、本実施形態では各ERが自ノードを経由するP2Pパケットの符号化および復号に必要な情報しかキャッシュしないので、キャッシュサーバの有効利用が可能になる。
次いで、本発明の第2実施形態について説明する。上記の第1実施形態では、ER1がP2Pパケットのデータを直ちに符号化し、ハッシュ値が符号化テーブル11に既登録であるか否かに基づいて、当該P2PパケットがイングレスのER1にとって最初のP2Pパケットであるか否かを判定するものとして説明した。
しかしながら、処理負荷の高い符号化方式を採用する場合や、符号化テーブル11をイーグレス機能部5の復号テーブル12と共用する場合には、P2Pパケットのデータを符号化テーブル11に登録しておき、P2Pパケットのデータが符号化テーブル11に既登録であるか否かに基づいて、当該P2Pパケットがイングレスにとって最初のデータであるか否かを判定する方が望ましい場合もある。そこで、以下に説明する第2実施形態では、図6に一例を示したように、符号化テーブル11では、ハッシュ値をそのデータおよび終端ノード識別情報と対応付けて管理するようにしている。
次いで、フローチャートを参照して本実施形態の動作を詳細に説明する。ここでも、図1のエッジルータER1に外部から入力したP2Pパケットが、ISPネットワークNWを経由して他のエッジルータER2から出力される場合を例にして説明する。図7はER1の動作を示したフローチャートである。なお、ER2の動作は前記第1実施形態と同じなので、ここでは説明を省略する。
図7のステップS11では、ネットワーク外部から受信したパケットがP2Pパケットであるか否かが識別される。P2Pパケット以外であれば周知のルーティングが実行され、前記パケットがネットワークNW内の所定の宛先へ転送される。これに対して、受信パケットがP2PパケットであればステップS12へ進み、当該P2Pパケットの宛先IPアドレスに基づいてイーグレス(ここでは、ER2)が識別される。
ステップS13では、前記P2Pパケットのデータおよび前記終端ノード識別情報のペアを含むエントリが前記符号化テーブル11に既登録であるか否かが、前記検索部44による検索結果に基づいて判定される。ER1が初めて受信したP2Pパケットであれば、未登録と判定されるのでステップS14へ進む。
ステップS14では、前記P2Pパケットのデータがハッシュ関数に適用されてハッシュ値が算出される。ステップS15では、前記P2Pパケットのデータおよびそのハッシュ値が、前記終端ノード識別情報と対応付けられて、前記キャッシュ管理部45により符号化テーブル11に新規登録される。ステップS16では、前記P2Pパケットが他のパケットと同様に前記ルーティング制御部2によりネットワークNWに転送される。
その後、ER1において転送済のP2Pパケットと終端ノードおよびデータが同一のP2Pパケットが改めて受信されると、ステップS13では、その終端ノード識別情報およびデータのペアが符号化テーブル11に既登録と判定されるのでステップS17へ進む。ステップS17では、前記符号化テーブル11上で当該ペアと同一ペアのエントリに登録されているハッシュ値が読み込まれる。ステップS18では、前記P2Pパケットのデータが当該ハッシュ値に置換されてP2P符号化パケットが生成される。ステップS19では、当該P2P符号化パケットが前記ルーティング制御部2によりネットワークNWへ転送される。
本実施形態によれば、ハッシュ値が符号化テーブル11に未登録のP2Pパケットのみを対象に、そのデータの符号化処理が行われるので符号化処理の総量を減じることができる。したがって、処理負荷の高い符号化方式を採用した場合でも高速な処理が可能になる。
図8は、本発明の第3実施形態に係るエッジルータERの主要部の構成を示した機能ブロック図であり、図9は、キャッシュサーバ10の一例を示した図である。本実施形態では、第1実施形態と較べて各ERのイングレス機能部4から終端ノード識別部42が省略され、符号化テーブル11でも、終端ノードの項目が省略され、識別情報の項目が追加されている。
図10は前記ER1の動作を示したフローチャートであり、図11は前記ER2の動作を示したフローチャートである。ここでも、ER1に外部から入力したP2PパケットがネットワークNWを経由してER2から出力される場合を例にして説明する。したがって、本実施形態でもER1がイングレス、ER2がイーグレス(終端ノード)となる。
ER1では、図10のステップS41において、ネットワーク外部から受信したパケットがP2Pパケットであると判定されるとステップS42へ進み、そのペイロード部に格納されているデータがハッシュ関数に適用されてハッシュ値が算出される。ステップS43では、このハッシュ値が前記符号化テーブル11に既登録であるか否かが判定される。ER1が初めて受信したP2Pパケットであれば、未登録と判定されるのでステップS44へ進む。ステップS44では、前記P2Pパケットのハッシュ値が、当該パケットの送信元IPアドレス、ポート、宛先IPアドレス、ポートおよびシークエンス番号等の再送判別用の識別情報と対応付けられて符号化テーブル11に登録される。ステップS45では、前記P2Pパケットが他のパケットと同様に前記ルーティング制御部2によりネットワークNWへ転送される。
図11へ進み、ER2は前記ER1によりネットワークNWに転送されたP2Pパケットを受信すると、ステップS51では当該パケットがP2Pパケットと判定されるのでステップS53へ進む。ステップS53では、前記P2Pパケットのデータがハッシュ関数に適用されてハッシュ値が算出される。ステップS54では、前記P2Pパケットのデータおよびそのハッシュ値が復号テーブル12に登録される。ステップS55では、前記P2Pパケットが他のパケットと同様に、前記ルーティング制御部2によりネットワーク外へ転送される。
図10へ戻り、ER1はネットワークNWへ転送済のP2Pパケットとデータが同一のP2Pパケットを改めて受信すると、ステップS43では、そのハッシュ値が符号化テーブル11に既登録と判定されるのでステップS46へ進む。ステップS46では、当該P2Pパケットが再送パケットであるか否かが、当該パケットの送信元IPアドレス、ポート、宛先IPアドレス、ポートおよびシークエンス番号等と既登録の識別情報とを比較して判別される。再送パケットでなければステップS47へ進み、前記P2Pパケットのデータが前記ハッシュ値に置換されてP2P符号化パケットが生成される。ステップS48では、当該P2P符号化パケットが前記ルーティング制御部2によりネットワークNW内へ転送される。
図11へ進み、ER2は、このP2P符号化パケットをステップS52で受信するとステップS56へ進む。ステップS56では、P2P符号化パケットのハッシュ値が復号テーブル12に既登録であるか否かが判定される。既登録であればステップS57へ進み、このハッシュ値と復号テーブル12上で対応付けられているデータが読み込まれる。ステップS58では、前記P2P符号化パケットのハッシュ値が、前記読み込まれたデータに置換されてP2Pパケットに復号される。ステップS59では、当該P2Pパケットが前記ルーティング制御部2によりネットワーク外へ転送される。
これに対して、前記ステップS56において、P2P符号化パケットのハッシュ値が復号テーブル12に未登録と判定されると、ステップS60へ進んで当該P2P符号化パケットが破棄される。
図10へ戻り、ER2においてP2P符号化パケットが破棄されると、その送信元からは、符号化前のP2Pパケットが再送信される。TCPでは再送パケットが同一経路で送信されるのが普通なので、ER1は、この再送P2PパケットをステップS46で検知してステップS45へ進む。ステップS45では、当該再送P2Pパケットが他のパケットと同様に前記ルーティング制御部2によりネットワークNWへそのまま転送される。
なお、再送パケットが同一経路で送信されなくても、本実施形態では他のルータが改めてイングレスとして機能し、そのデータを前記ER1と同様に改めてキャッシュするので、2回目以降はP2P符号化パケットを転送できるようになる。また、再送パケットが上記のキャッシュ機能を備えていないエッジルータを経由したとしても、P2Pパケットが符号化されることなく転送されるだけなので、P2Pパケットの到達性に影響が生じることはない。
本実施形態によれば、ハッシュ値をキャッシュしていない終端ノードにP2P符号化パケットが転送されると、改めて符号化前のP2Pパケットが転送されるので、ER1では終端ノードでのキャッシュ状態を意識することなくP2P符号化パケットを転送できる。
図12は、本発明の第4実施形態に係るエッジルータERの主要部の構成を示した機能ブロック図であり、前記と同一の符号は同一または同等部分を表している。
本実施形態では、ERのイーグレス機能部5にエントリ更新要求部56を設けて、P2Pパケットを受信したイーグレス(ER2)が当該受信パケットの宛先アドレスおよび自ノードのIPアドレスをイングレス(ER1)へ通知するようにし、一方、イングレス機能部4では前記キャッシュ管理部45が、エントリの更新内容を符号化テーブル11に反映するようにした点に特徴がある。また、図13は、本実施形態におけるキャッシュサーバ10の内容を模式的に示した図である。
図14は、前記ER1の動作を示したフローチャートであり、図15は、前記ER2,ER3の動作を示したフローチャートである。
ER1は、図14のステップS71でネットワーク外部からP2Pパケットを受信するとステップS72へ進む。ステップS72では、その終端ノード(ここでは、ER2)が識別される。ステップS73では、P2Pパケットのデータがハッシュ関数に適用されてハッシュ値が算出される。
ステップS74では、前記P2Pパケットの終端ノード識別情報および前記ハッシュ値のペアと同一のペアを含むエントリが前記符号化テーブル11に既登録であるか否かが判定される。ER1が初めて受信するP2Pパケットであれば、未登録と判定されるのでステップS75へ進む。ステップS75では、当該P2Pパケットが他のパケットと同様に前記ルーティング制御部2によりネットワークNWへ転送される。
図15へ進み、ER2は、前記ER1によりネットワークNWに転送されたP2PパケットをステップS91で受信するとステップS93へ進む。ステップS93では、前記P2PパケットのデータがER1と同一のハッシュ関数に適用されてハッシュ値が算出される。ステップS94では、符号化テーブル11の空き容量が十分であるか否かが判定され、不十分であればステップS95へ進む。
ステップS95では、符号化テーブル11に登録されているエントリの一部が削除されて空き領域が確保される。本実施形態では、エントリごとにライフタイム、使用頻度、あるいは経過時間等が監視され、ライフタイムの短い順、使用頻度の低い順、あるいは登録からの経過時間が長い順などの適宜の優先度で各エントリが削除される。ステップS96では、前記P2Pパケットのハッシュ値および終端ノード識別情報が相互に対応付けられて復号テーブル12に登録される。
ステップS97では、前記P2Pパケットが前記ルーティング制御部2によりネットワーク外へ転送される。ステップS98では、前記エントリ更新要求部56により、前記追加したハッシュ値および自ノード(ER2)のIPアドレスのペア、ならびに削除したハッシュ値および自ノードのIPアドレスのペアが、エントリ更新要求メッセージに登録されてネットワークNW上の全て、または一部のルータへ送信される。
図14へ戻り、ER1では、前記エントリ更新要求メッセージがステップS77で受信されるとステップS78へ進む。ステップS78では、受信したエントリ更新要求メッセージに基づいて前記符号化テーブル11が更新される。すなわち、追加されたエントリと対応するエントリ(ハッシュ値およびER2のIPアドレスのペア)が符号化テーブル11に未登録であれば当該エントリが新規に追加される一方、ハッシュ値は一致するもののIPアドレスが異なるエントリが既登録であれば、当該エントリの「終端ノード」の欄にER2のIPアドレスが追加される。
同様に、削除されたエントリと対応するエントリが符号化テーブル11に既登録であれば当該エントリが削除され、その際、当該エントリの「終端ノード」の欄に前記ER2のIPアドレスのみならず他のルータのIPアドレスも登録されていれば、前記ER2のIPアドレスのみが削除される。
その後、ER1が転送済のP2Pパケットと終端ノード識別情報およびハッシュ値が同一のP2Pパケットを改めて受信すると、ステップS74では、当該終端ノード識別情報およびハッシュ値のペアが符号化テーブル11に既登録と判定されるのでステップS79へ進む。ステップS79では、前記P2Pパケットのデータが、そのハッシュ値に置換されてP2P符号化パケットが生成される。ステップS80では、前記P2P符号化パケットが前記ルーティング制御部2によりネットワークNWへ転送される。
図15へ進み、ER2は、このP2P符号化パケットをステップS92で受信するとステップS99へ進む。ステップS97では、P2P符号化パケットのハッシュ値と復号テーブル12上で対応付けられているデータが読み込まれる。ステップS100では、前記P2P符号化パケットのハッシュ値が、前記読み込まれたデータに置換されてP2Pパケットに復号される。ステップS101では、当該P2Pパケットが前記ルーティング制御部2によりネットワーク外へ転送される。
一方、前記ER2がステップS98で送信したエントリ更新要求メッセージは、ネットワーク上の全て、または一部のルータへ転送されるので、今回のP2Pパケットに対してイングレスとして機能しているER1以外の他のルータでも受信される。
例えばER3は、図14のステップS77で前記エントリ更新要求メッセージを受信するとステップS78へ進む。しかしながら、ER3には前記P2Pパケットの終端ノード識別情報およびハッシュ値が未登録なので、ステップS78では、終端ノード識別情報およびハッシュ値のペアが符号化テーブル11に登録される。
ER3はその後、このペアと同一のP2PパケットをステップS71で受信すると、ER3にとっては最初のP2Pパケットであるにもかかわらず、ステップS74では既登録と判定されるのでステップS79以降へ進み、その符号化パケットが生成されて転送される。
本実施形態によれば、イングレスとして機能していないノードも、イーグレスから送信されるエントリ更新要求メッセージに応答して自ノードのエントリを更新できるので、自ノードにとって最初のP2PパケットであってもP2P符号化パケットに変換して転送できるようになる。
なお、上記の各実施形態では、キャッシュサーバ10を各エッジルータERに設け、ISPネットワークNWを通過するP2Pパケットのトラヒックを削減するものとして説明したが、本発明はこれのみに限定されるものではなく、図20に一例を示したように、ネットワークNW内でユーザ端末12の直前に位置するエンドルータ11にキャッシュサーバ10に設け、エッジルータERとエンドルータ11との間、あるいはエンドルータ11間で交換されるP2Pパケットを符号化/復号するようにしても良い。
また、上記の第3、4実施形態では、イングレスのER1においてP2Pパケットが符号化テーブル11に既登録であるか否かの判定が、当該P2Pパケットのデータを符号化して得られたキャッシュ値に基づいて行われるものとして説明したが、本発明はこれのみに限定されるものではなく、前記第2実施形態と同様に、P2Pパケットのデータが既登録であるか否かに基づいて判定されるようにしても良い。
ところで、P2Pパケットが可変長であると、同一部分のコンテンツデータであっても、長さが同一の複数のデータに常に分割されるとは限らないので、キャッシュデータの有効利用が難しくなる。
例えば、図16(a)に一例を示したように、100バイトのデータが常に上位50バイトと下位50バイトとに2分割されれば、上位50バイトおよび下位50バイトのそれぞれから算出したハッシュ値をキャッシュすることで、当該ハッシュ値を同一部分のデータのパケットに対して再利用できる。
しかしながら、P2Pパケットが可変長であって、同図(b)に示したように、例えば上位40バイトと下位60バイトとに2分割されたり、あるいは3分割されたりすると、それぞれに改めてハッシュ値が計算されてキャッシュされるため、先に割り当てられたハッシュ値を再利用できなくなる。
そこで、本発明では元データを先頭から固定の単位長ごと切り出してデータ片を生成し、このデータ片ごとに符号化圧縮を行って符号化データを生成するようにしている。
図17は、データを単位長ごとの符号化する手順を示したフローチャートであり、ステップS101では、可変長のP2Pパケットの一つが今回の注目パケットとして取り込まれる。ステップS102では、今回の注目パケットのシークエンス番号(Seq)およびパケット長(Len)がヘッダ情報から抽出される。ステップS103では、注目パケットのプリフィックスの位置が識別される。P2Pパケットでは、プリフィックスは各ピースの先頭位置に配置され、固有のバイト配列であることが多いので、バイト配列を参照することでプリフィックス位置を識別できる。ステップS104では、前記Seq、Lenおよびプリフィックス位置に基づいて、パケットデータの前後部分に生じる端数(前端数および後端数)が算出される。
図18は、前記端数の算出方法を模式的に表現した図であり、例えば、Seqが1000、Lenおよびヘッダ長から求まるペイロード長が600バイト、単位長が128バイト、プリフィックス位置がペイロード先端から200バイト目であり、プリフィックス(例えば、12バイト)を符号化対象としなければ、前端数は72(Mod[200,128])バイト、後端数は4(Mod[(600−200−12),128]バイトとなる。なお、プリフィックス(例えば、12バイト)を符号化対象とするのであれば、図19に示したように、前端数は72(Mod[200,128])バイト、後端数は16(Mod[(600−200),128]バイトとなる。
図17へ戻り、ステップS105では、前端数の次から単位長ごとにデータが符号化されてハッシュ値が算出される。図19の例では、前端数と後端数との間のデータが4つの単位長に分割されることが判る。ステップS106では、符号化が後端数の手前まで完了したか否かが判定され、完了していなければステップS105へ戻り、符号化位置を単位長ずつ移動させながら符号化処理が継続される。
今回の注目パケットに関して、単位長ごとの符号化処理が全て(図19では、4つ)完了するとステップS107へ進む。ステップS107では、図19に示したように、前端数および後端数のデータはそのままで、単位長のデータのみが符号化されたP2P符号化パケットが生成される。
ステップS108では、符号化前のIPヘッダのTotal LengthおよびHeader Checksum、符号化前のTCPヘッダのChecksum、ならびに上記の単位長分割の結果を代表する符号化ステータスなどが、P2P符号化パケットのIPヘッダオプションまたはペイロード部の一部に登録される。本実施形態では、前端数バイト数、各単位長部分のバイト数(符号化「16バイト」、非符号化「128バイト」)および後端数バイト数が符号化ステータスとして登録される。したがって、図19に示した例では、(72,16,16,16,16,16)が符号化ステータスとして登録される。
なお、固定長部分であっても、符号化できなかった部分は128バイトのデータがそのまま登録される。また、端数が発生しない場合には「0」が登録される。さらに、符号化前のIPヘッダやTCPヘッダに関する情報は復号側でデータを再構築する際に計算できるので、これら全てを前記符号化ステータスとして登録することなく、その一部または全部を省略しても良い。
ステップS109では、前記P2P符号化パケットに関して、そのIPヘッダのTotal LengthおよびHeader Checksum、ならびにTCPヘッダのChecksumが再計算される。ステップS110では、全てのパケットに関して上記の処理が完了したか否かが判定され、完了していなければステップS101へ戻り、注目パケットを切り替えながら上記の各処理が繰り返される。
このP2P符号化パケットを復号する際は、ヘッダ情報からSeq、Lenおよび符号化ステータスを抽出し、これらに基づいて前端数および後端数を識別する。そして、符号化された固定長部分は復号し、前端数部、後端数部、および符号化されていない固定長部分はそのままとし、これら全てを結合してヘッダ情報を書き換えることでパケットデータが再現される。
なお、上記した実施形態では、コンテンツデータに含まれるプリフィックスに着目して当該コンテンツデータを固定長単位で分割するものとして説明したが、本発明はこれのみに限定されるものではなく、コンテンツデータの配送単位に付されてマーカとして機能するデータ配列であれば、他のデータ配列に着目するようにしても良い。
本発明が適用されるネットワークの構成を示したブロック図である。 キャッシュサーバの第1実施形態の内容を模式的に示した図である。 エッジルータの第1実施形態の構成を示した機能ブロック図である。 第1実施形態におけるイングレスルータの動作を示したフローチャートである。 第1実施形態におけるイーグレスルータの動作を示したフローチャートである。 キャッシュサーバの第2実施形態の内容を模式的に示した図である。 第2実施形態におけるイングレスルータの動作を示したフローチャートである。 エッジルータの第3実施形態の構成を示した機能ブロック図である。 キャッシュサーバの第3実施形態の内容を模式的に示した図である。 第3実施形態におけるイングレスルータの動作を示したフローチャートである。 第3実施形態におけるイーグレスルータの動作を示したフローチャートである。 エッジルータの第4実施形態の構成を示した機能ブロック図である。 キャッシュサーバの第4実施形態の内容を模式的に示した図である。 第4実施形態におけるイングレスルータの動作を示したフローチャートである。 第5実施形態におけるイーグレスルータの動作を示したフローチャートである。 パケットデータをキャッシュする際の技術課題を説明した図である。 パケットデータを単位長ごとに符号化する手順を示したフローチャートである。 P2Pパケットのデータを単位長ごとに符号化する方法(その1)を示した模式図である。 P2Pパケットのデータを単位長ごとに符号化する方法(その2)を示した模式図である。 本発明の変形例を示した図である。 BitTorrentのファイル交換手順を示したブロック図である。
符号の説明
1…インターフェース,2…ルーティング制御部,3…ルーティングテーブル,4…イングレス機能部,5…イーグレス機能部,10…キャッシュサーバ,11…符号化テーブル,12…復号テーブル

Claims (10)

  1. ネットワーク上の入力ルータから出力ルータへ転送されるP2Pパケットを入力ルータにおいて符号化するパケット符号化装置において、
    パケットのデータを不可逆に符号化圧縮する符号化手段と、
    パケットの符号化データを管理するキャッシュテーブルと、
    パケットの符号化データを前記キャッシュテーブルから検索する検索手段と、
    前記キャッシュテーブルに未登録の符号化データを当該キャッシュテーブルに登録するキャッシュ管理手段と、
    パケットの符号化データが前記キャッシュテーブルに既登録であると、当該パケットのデータを前記符号化データに置き換えて符号化パケットを生成する符号化パケット生成手段と、
    符号化データが未登録のパケットについては当該パケットを、既登録のパケットについては当該パケットに代えて前記符号化パケットを、出力する手段とを具備し、
    前記パケットのパケット長が可変長であり、
    前記符号化手段は、
    パケットのデータを固定長単位で複数のデータ片に分割する手段と、
    各データ片を不可逆に符号化圧縮して符号化データ片を生成する手段と、
    前記符号化データ片を結合して符号化データを生成する手段とを含み、
    前記分割する手段は、複数のパケットに分割された元データが、当該元データの先頭から固定長単位で分割されるように各パケットのデータを分割することを特徴とするパケット符号化装置。
  2. 前記出力ルータを識別する識別手段を含み、
    前記キャッシュテーブルでは、パケットの符号化データが前記出力ルータの識別情報と対応付けて管理され、
    前記検索手段は、前記出力ルータの識別情報および符号化データのペアが一致するエントリをキャッシュテーブルから検索し、
    前記キャッシュ管理手段は、前記出力ルータの識別情報および符号化データを対応付けてキャッシュテーブルに登録し、
    前記符号化パケット生成手段は、出力ルータの識別情報および符号化データのペアが既登録であると、前記パケットのデータを当該符号化データに置き換えることを特徴とする請求項に記載のパケット符号化装置。
  3. 前記キャッシュ管理手段は、前記パケットのデータおよびその符号化データを対応付けてキャッシュテーブルに登録し、
    前記検索手段は、パケットのデータと対応付けられた符号化データを前記キャッシュテーブルから検索し、
    前記符号化パケット生成手段は、前記パケットのデータが前記キャッシュテーブルに既登録であると、当該パケットのデータを当該データと対応付けられた符号化データに置き換えることを特徴とする請求項に記載のパケット符号化装置。
  4. 前記P2Pパケットが再送パケットであるか否かを判定する手段を具備し、
    再送パケットは、その符号化データが前記キャッシュテーブルに既登録であっても、符号化せずに転送することを特徴とする請求項に記載のパケット符号化装置。
  5. 前記出力ルータを含む他のノードから、当該他のノードのキャッシュテーブルに関する更新内容と同一の更新を要求する更新要求を受信する手段を含み、
    前記キャッシュ管理手段は、エントリ追加の更新要求に応答して自身のキャッシュテーブルを更新することを特徴とする請求項に記載のパケット符号化装置。
  6. 前記キャッシュ管理手段は、エントリ削除の更新要求に応答して自身のキャッシュテーブルを更新することを特徴とする請求項に記載のパケット符号化装置。
  7. 前記請求項1ないし3のいずれかに記載のパケット符号化装置により符号化されたパケットを前記出力ルータにおいて復号するパケット復号装置であって、
    転送された非符号化パケットのデータを不可逆に符号化圧縮する符号化手段と、
    前記データおよびその符号化データを対応付けて管理するキャッシュテーブルと、
    前記非符号化パケットのデータおよびその符号化データを対応付けて前記キャッシュテーブルに登録するキャッシュ管理手段と、
    転送された符号化パケットの符号化データを、当該符号化データと前記キャッシュテーブル上で対応付けられているデータに置き換える復号手段とを含むことを特徴とするパケット復号装置。
  8. 前記請求項のパケット符号化装置により符号化されたP2Pパケットを前記出力ルータにおいて復号するパケット復号装置であって、
    転送された符号化パケットの符号化データが前記キャッシュテーブルに未登録であると、当該符号化パケットを破棄する手段を含むことを特徴とする請求項に記載のパケット復号装置。
  9. 前記請求項5または6のパケット符号化装置により符号化されたP2Pパケットを前記出力ルータにおいて復号するパケット復号装置であって、
    転送された非符号化パケットのデータを符号化して得られた符号化データおよび自身の識別情報のペアのエントリ追加を要求する更新要求をネットワーク上のノードへ通知する更新要求手段を含むことを特徴とする請求項に記載のパケット復号装置。
  10. 前記更新要求手段が、キャッシュテーブルから削除したエントリの削除を要求する更新要求をネットワーク上のノードへ通知することを特徴とする請求項に記載のパケット復号装置。
JP2008093032A 2008-03-31 2008-03-31 パケット符号化方法および装置ならびに復号方法および装置 Expired - Fee Related JP5131915B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008093032A JP5131915B2 (ja) 2008-03-31 2008-03-31 パケット符号化方法および装置ならびに復号方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008093032A JP5131915B2 (ja) 2008-03-31 2008-03-31 パケット符号化方法および装置ならびに復号方法および装置

Publications (2)

Publication Number Publication Date
JP2009246816A JP2009246816A (ja) 2009-10-22
JP5131915B2 true JP5131915B2 (ja) 2013-01-30

Family

ID=41308228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008093032A Expired - Fee Related JP5131915B2 (ja) 2008-03-31 2008-03-31 パケット符号化方法および装置ならびに復号方法および装置

Country Status (1)

Country Link
JP (1) JP5131915B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5582506B2 (ja) * 2011-03-31 2014-09-03 日本電信電話株式会社 パケットキャッシュ制御方法及びシステム
US9104462B2 (en) * 2012-08-14 2015-08-11 Alcatel Lucent Method and apparatus for providing traffic re-aware slot placement
KR101956031B1 (ko) 2012-10-15 2019-03-11 삼성전자 주식회사 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307720A (ja) * 1999-04-21 2000-11-02 Canon Inc ネットワーク接続装置における音声符号化方法
JP3943868B2 (ja) * 2001-06-13 2007-07-11 株式会社東芝 サーバ側プロキシ、データ転送方法及びプログラム
JP3943867B2 (ja) * 2001-06-13 2007-07-11 株式会社東芝 サーバ側プロキシ、データ転送方法及びプログラム
JP3913508B2 (ja) * 2001-09-28 2007-05-09 株式会社東芝 データ転送装置およびデータ転送方法
JP3848209B2 (ja) * 2002-05-23 2006-11-22 株式会社東芝 データ転送装置、データ転送方法及びプログラム
JP2004127168A (ja) * 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
JP2006333055A (ja) * 2005-05-26 2006-12-07 Nippon Telegr & Teleph Corp <Ntt> 観測装置分散観測システムおよび観測装置分散観測方法
JP4810326B2 (ja) * 2005-07-05 2011-11-09 パナソニック株式会社 可変長復号方法及び装置

Also Published As

Publication number Publication date
JP2009246816A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
CN110313162B (zh) 促进在网络环境中向多个接收者的内容递送的系统和方法
US10924448B2 (en) Content delivery from home networks
EP2813053B1 (en) Method and apparatus for internet protocol based content router
CN104662865B (zh) 混合型http和udp内容分发
EP2869515B1 (en) System and method for routing and for minimum path mtu discovery in content centric networks
US8392448B2 (en) Method and apparatus for transmitting packets in the network
US20080159150A1 (en) Method and Apparatus for Preventing IP Datagram Fragmentation and Reassembly
KR20140044982A (ko) 홉 카운트 기반 콘텐츠 캐싱 방법 및 그 네트워크 엔티티
US9807205B2 (en) Header compression for CCN messages using dictionary
WO2018184487A1 (zh) Bier报文的转发方法及装置
US7688819B2 (en) Faster routing protocol convergence using efficient message markup
KR20050084765A (ko) 정보 처리 장치 및 정보 처리 방법, 및 컴퓨터·프로그램
JP5131915B2 (ja) パケット符号化方法および装置ならびに復号方法および装置
KR102376496B1 (ko) 서비스 스트림 분산 포워딩 시스템 및 그 방법
EP2975819B1 (en) Reconstructable content objects
JP7142106B2 (ja) Icnメッセージの転送方法
Azgin et al. pit/less: Stateless forwarding in content centric networks
US10021222B2 (en) Bit-aligned header compression for CCN messages using dictionary
EP3163838B1 (en) Header compression for ccn messages using dictionary learning
US10986209B2 (en) Secure and reliable on-demand source routing in an information centric network
KR101243071B1 (ko) 소스 스위칭 방법, 시스템, 및 디바이스
Almishari et al. Optimizing bi-directional low-latency communication in named data networking
JP5022412B2 (ja) 経路情報管理システム、経路情報管理方法、およびプログラム
WO2024007939A1 (zh) 报文处理方法、网络设备及通信系统
JP4615005B2 (ja) 経路計算装置におけるセッション管理方法およびその経路計算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121010

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121102

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees