JP2022053105A - Transfer device and program of content distribution system - Google Patents
Transfer device and program of content distribution system Download PDFInfo
- Publication number
- JP2022053105A JP2022053105A JP2020159724A JP2020159724A JP2022053105A JP 2022053105 A JP2022053105 A JP 2022053105A JP 2020159724 A JP2020159724 A JP 2020159724A JP 2020159724 A JP2020159724 A JP 2020159724A JP 2022053105 A JP2022053105 A JP 2022053105A
- Authority
- JP
- Japan
- Prior art keywords
- content
- packet
- transfer processing
- transfer
- chunk
- 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.)
- Granted
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 185
- 238000012545 processing Methods 0.000 claims abstract description 156
- 238000004891 communication Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
特許法第30条第2項適用申請有り ▲1▼ウェブサイトの掲載日:令和2年8月21日 ウェブサイトのアドレス https://ieeexplore.ieee.org/document/9173693
本開示は、コンテンツの名前に基づきルーティングを行うコンテンツ配信システムの転送装置及びプログラムに関する。 The present disclosure relates to transfer devices and programs of content distribution systems that perform routing based on the name of the content.
コンテンツの名前に基づきコンテンツの要求及び配信を行うコンテンツ配信システムが提案されている。非特許文献1は、その様なシステムの1つであるコンテンツ・セントリック・ネットワーク(CCN:Content Centric Networking)を開示している。
A content distribution system that requests and distributes content based on the name of the content has been proposed. Non-Patent
CCNにおいて、コンテンツを公開するサーバ装置は当該コンテンツを1つ以上のチャンクに分割し、クライアント装置は、この分割されたチャンク単位でコンテンツを取得する。また、CCNにおいて、チャンクの転送を行った通信装置(以下、転送装置と呼ぶ。)は、当該チャンクを保存(キャッシュ)できる。転送装置は、キャッシュしているチャンクを要求するインタレスト・パケット(要求パケット)をクライアント装置から受信すると、当該インタレスト・パケットをサーバ装置に向けて転送することなく、キャッシュしているチャンクを、当該インタレスト・パケットを送信したクライアント装置に向けて送信できる。 In the CCN, the server device that publishes the content divides the content into one or more chunks, and the client device acquires the content in units of the divided chunks. Further, in the CCN, the communication device (hereinafter referred to as a transfer device) that has transferred the chunk can store (cache) the chunk. When the transfer device receives an interest packet (request packet) requesting a cached chunk from the client device, the transfer device transfers the cached chunk to the server device without forwarding the interest packet to the server device. -Can be sent to the client device that sent the packet.
以下に、転送装置の動作の一例を説明する。転送装置は、CS(Contents Store)と、FIB(Forward Information Base)と、PIT(Pending Interest Table)と、を管理する。CSは、キャッシュしているチャンクを示す情報である。FIBは、インタレスト・パケットが要求するチャンクと、当該インタレスト・パケットの転送のために、当該インタレスト・パケットを送信するインタフェースとの関係を示す情報である。PITは、インタレスト・パケットが要求するチャンクと、当該インタレスト・パケットを受信したインタフェースとの関係を示す情報である。 An example of the operation of the transfer device will be described below. The transfer device manages CS (Contents Store), FIB (Forward Information Base), and PIT (Pending Interest Table). CS is information indicating a cached chunk. The FIB is information indicating the relationship between the chunk requested by the interest packet and the interface that transmits the interest packet for the transfer of the interest packet. The PIT is information indicating the relationship between the chunk requested by the interest packet and the interface that received the interest packet.
転送装置は、インタレスト・パケットを受信すると、CSを検索し、当該インタレスト・パケットが要求するチャンク(以下、要求チャンク)をキャッシュしているか否かを判定する。要求チャンクをキャッシュしている場合には、キャッシュしている要求チャンクを含むデータ・パケットを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信する。なお、当該データ・パケットを送信するインタフェースは、当該インタレスト・パケットを受信したインタフェースである。一方、要求チャンクをキャッシュしていない場合、転送装置は、PITを検索して、要求チャンクを要求する別のインタレスト・パケットを既に転送し、要求チャンクの受信待ち状態であるかを判定する。受信待ち状態であると、転送装置は、受信したインタレスト・パケットを転送せず、PITの当該要求チャンクのエントリに当該インタレスト・パケットの受信インタフェースを追加する。一方、要求チャンクの受信待ち状態ではない場合、転送装置は、FIBに基づき判定したインタフェースから当該インタレスト・パケットを送信(転送)し、PITに要求チャンクのエントリを追加する。このエントリは、要求チャンクを示す情報(チャンク名)と、当該インタレスト・パケットを受信したインタフェースを示す情報と、を有する。 When the transfer device receives the interest packet, it searches the CS and determines whether or not the chunk requested by the interest packet (hereinafter referred to as the request chunk) is cached. When the request chunk is cached, the data packet including the cached request chunk is transmitted to the client device that is the source of the interest packet. The interface for transmitting the data packet is the interface for receiving the interest packet. On the other hand, if the request chunk is not cached, the transfer device searches the PIT to forward another interest packet requesting the request chunk and determines whether the request chunk is waiting to be received. When in the reception wait state, the transfer device does not forward the received interest packet and adds the reception interface of the interest packet to the entry of the request chunk of the PIT. On the other hand, when the request chunk is not in the reception waiting state, the transfer device transmits (forwards) the interest packet from the interface determined based on the FIB, and adds the request chunk entry to the PIT. This entry has information indicating a request chunk (chunk name) and information indicating the interface on which the interest packet was received.
また、転送装置は、チャンクを含むデータ・パケットを受信すると、当該データ・パケットを送信するインタフェースをPITに基づき判定し、判定したインタフェースから当該データ・パケットを送信し、当該チャンクのエントリをPITから削除する。なお、データ・パケットを送信するインタフェースは、当該チャンクを要求するインタレスト・パケットを受信したインタフェースであり、PITの当該チャンクに関するエントリに設定されている。また、転送装置は、受信したデータ・パケットに含まれるチャンクをキャッシュするとCSを更新する。 Further, when the transfer device receives the data packet including the chunk, the transfer device determines the interface for transmitting the data packet based on the PIT, transmits the data packet from the determined interface, and makes an entry for the chunk from the PIT. delete. The interface for transmitting the data packet is the interface for receiving the interest packet requesting the chunk, and is set in the entry related to the chunk in the PIT. Further, the transfer device updates the CS when the chunk included in the received data packet is cached.
この様に、CCNにおいて、チャンクを含むデータ・パケットは、当該チャンクを要求するインタレスト・パケットを受信したインタフェースに送信される。よって、チャンクは、当該チャンクを要求するインタレスト・パケットと同じ経路を逆向きに転送されて、当該チャンクを要求したクライアント装置に配信される。 Thus, in the CCN, the data packet containing the chunk is transmitted to the interface that received the interest packet requesting the chunk. Therefore, the chunk is forwarded in the reverse direction on the same route as the interest packet requesting the chunk, and is delivered to the client device requesting the chunk.
転送装置は、一般的には、パケットの送受信処理を行うインタフェース部と、パケットの転送処理を行う転送処理部と、を有する。なお、本明細書において、パケットとは、インタレスト・パケットとデータ・パケットの総称を意味する。ここで、転送装置のスループットを高めるために転送装置に複数の転送処理部を設けることが検討されている。 A transfer device generally includes an interface unit that performs packet transmission / reception processing and a transfer processing unit that performs packet transfer processing. In addition, in this specification, a packet means a generic term of an interest packet and a data packet. Here, in order to increase the throughput of the transfer device, it is considered to provide a plurality of transfer processing units in the transfer device.
転送装置の転送処理部は、パケットを受信した際、PITのエントリに対するエントリ処理を行う。なお、本明細書において、エントリ処理とは、PITへのエントリの追加処理、エントリ内容の更新処理、エントリの削除処理の総称である。転送装置に複数の転送処理部を設けると、各転送処理部が、PITの同じエントリに同時にアクセスしてエントリ処理を行うことが生じ得る。PITの同じエントリに対して、異なる転送処理部によるエントリ処理が同時に生じると、PITに格納すべき情報が消失するといった不具合がPITに生じ得る。 When a packet is received, the transfer processing unit of the transfer device performs entry processing for the PIT entry. In the present specification, the entry process is a general term for an entry addition process to the PIT, an entry content update process, and an entry deletion process. If the transfer device is provided with a plurality of transfer processing units, it is possible that each transfer processing unit accesses the same entry of the PIT at the same time and performs entry processing. If entry processing by different transfer processing units occurs simultaneously for the same entry in the PIT, a problem such as loss of information to be stored in the PIT may occur in the PIT.
このため、非特許文献2は、同じチャンクを要求するインタレスト・パケットと、同じチャンクを搬送しているデータ・パケットについては、同じ転送処理部に処理させる構成を開示している。具体的には、ハッシュ値と転送処理部との対応関係を予め決定して、この対応関係を示す情報を転送装置に格納しておく。そして、転送装置は、パケットを受信すると、当該パケットが要求している、或いは、当該パケットが搬送しているチャンク(以下、パケットが要求している、或いは、パケットが搬送しているチャンクを、"パケットに関連付けられたチャンク"と表記する。)の名前のハッシュ値を求め、求めたハッシュ値に対応する転送処理部に当該パケットの転送処理を行わせることを非特許文献2は開示している。この構成により、PITのあるエントリに対するエントリ処理は、同じ1つの転送処理部のみにより行われるため、PITに不具合が生じることを防ぐことができる。
Therefore, Non-Patent
また、非特許文献3は、PITのエントリ処理において排他制御を行うことを提案している。具体的には、PITにロック状態フィールドを設ける。なお、ロック状態フィールドには、値"0"又は値"1"が設定され、値"0"はアンロック状態を示し、値"1"はロック状態を示している。PITのエントリ処理を行う転送処理部は、処理対象のエントリのロック・フィールドの値をチェックし、値が"1"、つまり、ロック状態であれば、値が"0"、つまりアンロック状態になるまで待機する。処理対象のPITエントリがアンロック状態である場合、転送処理部は、エントリ処理を開始するが、この際、転送処理部は、まず、処理対象のエントリのロック状態フィールドの値を"1"に設定して処理対象のエントリをロック状態にする。そして、転送処理部は転送処理及びエントリ処理を実行し、これらの処理が完了すると、処理対象のエントリのロック状態フィールドの値を"0"に設定してアンロック状態にする。非特許文献3においては、この排他制御により、異なる転送処理部が、PITの同じエントリに同時にアクセスすることを防いでいる。 Further, Non-Patent Document 3 proposes to perform exclusive control in the entry processing of PIT. Specifically, a locked state field is provided in the PIT. A value "0" or a value "1" is set in the lock state field, a value "0" indicates an unlock state, and a value "1" indicates a lock state. The transfer processing unit that performs PIT entry processing checks the value of the lock field of the entry to be processed, and if the value is "1", that is, in the locked state, the value is "0", that is, in the unlocked state. Wait until it becomes. When the PIT entry to be processed is in the unlocked state, the transfer processing unit starts the entry processing. At this time, the transfer processing unit first sets the value of the lock state field of the entry to be processed to "1". Set to lock the entry to be processed. Then, the transfer processing unit executes the transfer process and the entry process, and when these processes are completed, the value of the lock state field of the entry to be processed is set to "0" to bring it into the unlock state. In Non-Patent Document 3, this exclusive control prevents different transfer processing units from accessing the same entry of PIT at the same time.
非特許文献3の構成において、転送処理部は、パケットを受信しても、当該パケットに関連付けられたチャンクに対応するPITのエントリがロック状態であると、アンロック状態になるまで待機しなければならず、スループットが低下する。また、非特許文献2の構成では、パケットに関連付けられたチャンクの名前により、当該パケットの転送処理を行う転送処理部が決まるため、同じ名前のチャンクに関連付けられたパケットが連続して到着すると、1つの転送処理部に処理が集中し、パケット損失の原因となり得る。
In the configuration of Non-Patent Document 3, even if the transfer processing unit receives a packet, if the entry of the PIT corresponding to the chunk associated with the packet is in the locked state, the transfer processing unit must wait until the packet is unlocked. However, the throughput is reduced. Further, in the configuration of Non-Patent
本発明は、スループットの低下を防ぎ、かつ、パケット損失を低下させることができる技術を提供するものである。 The present invention provides a technique capable of preventing a decrease in throughput and reducing packet loss.
本発明の一態様によると、パケットに関連付けられたコンテンツの名前に基づき前記パケットを転送するコンテンツ配信システムの転送装置は、複数の通信インタフェースと、前記パケットの転送処理を行う複数の転送処理手段と、前記複数の通信インタフェースの内の通信インタフェースが前記パケットを受信した際、前記複数の転送処理手段から、当該パケットの転送処理を行う転送処理手段を決定する制御を行う制御手段と、を備え、前記制御手段は、前記複数の通信インタフェースが受信した前記パケットに基づき、前記コンテンツを、第1コンテンツと、前記第1コンテンツより人気度の低い第2コンテンツに分類し、前記第1コンテンツに関連付けられた前記パケットの転送処理を行う前記転送処理手段を前記複数の転送処理手段に分散させることを特徴とする。 According to one aspect of the present invention, the transfer device of the content distribution system that transfers the packet based on the name of the content associated with the packet includes a plurality of communication interfaces and a plurality of transfer processing means that perform the transfer process of the packet. When the communication interface among the plurality of communication interfaces receives the packet, the plurality of transfer processing means are provided with a control means for controlling the transfer processing means for performing the transfer processing of the packet. Based on the packet received by the plurality of communication interfaces, the control means classifies the content into a first content and a second content which is less popular than the first content, and is associated with the first content. It is characterized in that the transfer processing means for performing the transfer processing of the packet is distributed to the plurality of transfer processing means.
本発明によると、スループットの低下を防ぎ、かつ、パケット損失を低下させることができる。 According to the present invention, it is possible to prevent a decrease in throughput and reduce packet loss.
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. It should be noted that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more of the plurality of features described in the embodiments may be arbitrarily combined. In addition, the same or similar configuration will be given the same reference number, and duplicated explanations will be omitted.
以下では、コンテンツ配信システム(コンテンツ配信ネットワーク)が、CCNであるものとして本実施形態の説明を行う。しかしながら、コンテンツを示す名前に基づきルーティングを行う任意のコンテンツ配信システムに対して本発明を適用することができる。特に、以下ではCCNによるコンテンツの配信に従い、チャンクと呼ばれるコンテンツの断片を単位としてコンテンツを配信する形態で本実施形態の説明を行うが、コンテンツを分割することなく配信するネットワークに対しても本発明を適用することができる。さらに、CCNにおいては、コンテンツの断片であるチャンクを単位としてコンテンツを配信するため、以下の説明では、このチャンクの名前を"チャンク名"と表記するが、チャンクもコンテンツであるため、本実施形態の"チャンク名"は、"コンテンツ名"に置き換えることもできる。 Hereinafter, the present embodiment will be described assuming that the content distribution system (content distribution network) is CCN. However, the present invention can be applied to any content distribution system that routes based on the name indicating the content. In particular, in the following, the present embodiment will be described in the form of distributing the content in units of pieces of content called chunks according to the distribution of the content by CCN, but the present invention also applies to a network that distributes the content without dividing the content. Can be applied. Further, in CCN, since the content is distributed in units of chunks that are fragments of the content, the name of this chunk is referred to as "chunk name" in the following description, but since the chunk is also the content, this embodiment. The "chunk name" in can be replaced with the "content name".
図1は、本実施形態による転送装置100の構成図である。転送装置100は、通信インタフェース(IF)部1と、複数の転送処理部20と、記憶部30と、を有する。IF部1は、複数の通信インタフェース(IF)10と、制御部11と、を有する。複数の転送処理部20のそれぞれは、CPU(プロセッサ)により実現され得る。この場合、CPUが、例えば、記憶部30に格納されているプログラムを実行することで以下に説明する転送処理部20の機能が実現され得る。さらに、複数の転送処理部20は、複数のコアを有するマルチコアCPUにより実現され得る。この場合、マルチコアCPUが、例えば、記憶部30に格納されているプログラムを実行することで、各コアそれぞれが、以下に説明する転送処理部20として機能する。なお、転送処理部20の機能は、ASIC等のハードウェアによっても実現され得る。また、転送処理部20の機能は、適切なプログラムを実行する任意のプロセッサと、ASIC等のハードウェアの組み合わせでも実現され得る。なお、図1においては、IF部1が有するIF10の数をN(Nは2以上の整数)としている。また、転送処理部20の数をM(Mは2以上の整数)としている。なお、個々のIF10を区別するため、n番目(nは1~Nまでの整数)のIF10をIF#nとも表記する。同様に、個々の転送処理部20を区別するため、m番目(mは1~Mまでの整数)の転送処理部20を転送処理部#mとも表記する。
FIG. 1 is a configuration diagram of a
IF10は、通信線を介して他の装置(他の転送装置や、サーバ装置や、クライアント装置等)に接続され、接続されている他の装置とパケットの送受信を行う。具体的には、IF10は、パケットを受信すると、当該パケットを転送処理部#1~転送処理部#Mの内の1つに出力する。なお、IF10が、パケットを出力する転送処理部20については、制御部11が決定する。制御部11が、パケットを出力する転送処理部20をどの様に決定するかについては後述する。また、IF10は、転送処理部20からパケットを受信すると、当該パケットを、通信線を介して他の装置に送信する。
The
記憶部30は、揮発性メモリ及び不揮発性メモリを含む1つ以上の記憶デバイス(メモリ)を備え、PIT、FIBを保持している。さらに、記憶部30は、チャンクをキャッシュし、かつ、キャッシュしているチャンクの情報(CS)も保持している。
The
転送処理部20は、IF10からパケットを受信すると、当該パケットに応じた処理を行う。具体的には、パケットがインタレスト・パケットであり、要求チャンクをキャッシュしていると、当該パケットを受信したIF10にキャッシュしているチャンクを含むデータ・パケットを送信する。また、パケットがインタレスト・パケットであり、要求チャンクをキャッシュしていないが、PITに当該要求チャンクのエントリがあると、PITを更新してインタレスト・パケットを廃棄する。さらに、パケットがインタレスト・パケットであり、要求チャンクをキャッシュしておらず、かつ、PITに当該要求チャンクのエントリが無いと、PITに要求チャンクのエントリを追加し、FIBに基づき決定したIF10にインタレスト・パケットを転送する。また、パケットがデータ・パケットであると、PITに基づき判定したIF10に当該データ・パケットを送信し、当該データ・パケットが搬送しているチャンクに関するPITのエントリを削除する。
When the
図2は、パケットのヘッダの一部を示している。パケットのヘッダは、チャンク名フィールドと、ナンス値フィールドと、を含んでいる。チャンク名フィールドには、チャンク名が格納される。なお、インタレスト・パケットの場合には、要求するチャンクのチャンク名が格納され、データ・パケットの場合には、ペイロードに格納されているチャンクのチャンク名が格納される。本明細書において、パケットのチャンク名フィールドに格納されているチャンク名を、"パケットに関連付けられたチャンク名"と表記する。さらに、パケットのチャンク名フィールドに格納されているチャンク名が示すチャンクを、"パケットに関連付けられたチャンク"と表記する。同様に、"チャンク名に関連付けられたパケット"とは、チャンク名フィールドに当該チャンク名が格納されているパケットを意味するものとする。さらに、"チャンクに関連付けられたパケット"とは、チャンク名フィールドに当該チャンクのチャンク名が格納されているパケットを意味するものとする。ナンス値フィールドには、ランダムに生成された数字であるナンス値が格納される。ナンス値は、パケットがループ状に転送されているといったパケットの転送異常を検出するために設けられている。 FIG. 2 shows a part of the packet header. The packet header contains a chunk name field and a nonce value field. The chunk name field stores the chunk name. In the case of an interest packet, the chunk name of the requested chunk is stored, and in the case of a data packet, the chunk name of the chunk stored in the payload is stored. In the present specification, the chunk name stored in the chunk name field of the packet is referred to as "chunk name associated with the packet". Further, the chunk indicated by the chunk name stored in the chunk name field of the packet is referred to as "chunk associated with the packet". Similarly, "packet associated with a chunk name" shall mean a packet in which the chunk name is stored in the chunk name field. Further, "packet associated with a chunk" shall mean a packet in which the chunk name of the chunk is stored in the chunk name field. The nonce value field stores a nonce value, which is a randomly generated number. The nonce value is provided to detect a packet transfer abnormality such as a packet being transferred in a loop.
続いて、IF10が他の装置からパケットを受信した際、受信したパケットの出力先の転送処理部20を制御部11がどの様に決定するかについて説明する。なお、IF10は、他の装置からパケット受信した際、当該パケットのチャンク名フィールドに格納されているチャンク名と、ナンス値フィールドに格納されているナンス値と、を制御部11に通知するものとする。図3は、制御部11の機能ブロック図である。例えば、制御部11は、1つ以上のプロセッサにより構成され、当該1つ以上のプロセッサが記憶部30に格納されているプログラムを実行することで、図3の機能ブロックが実現され得る。また、制御部11は、ハードウェアによっても実現され得る。さらに、制御部11は、適切なプログラムを実行する任意のプロセッサと、ASIC等のハードウェアの組み合わせでも実現され得る。
Subsequently, when the
IF10から通知されるチャンク名は、第2ハッシュ値算出部110と、第1ハッシュ値算出部112に入力される。また、IF10から通知されるナンス値は、第1ハッシュ値算出部112に入力される。第2ハッシュ値算出部110は、チャンク名を第2ハッシュ関数の入力として、そのハッシュ値(第2ハッシュ値)を求め、選択部111に第2ハッシュ値を通知する。選択部111は、第2情報114と、第2ハッシュ値と、に基づき、チャンク名とナンス値のいずれか1つを選択して選択結果を第1ハッシュ値算出部112に通知する。
The chunk name notified from the
図4(A)は、第2情報114の例である。第2情報114は、第2ハッシュ値と、第1ハッシュ関数の入力として使用する入力値との対応関係を示す対応関係情報である。図4(A)の例において、第2ハッシュ値が"0"又は"1"であると、選択部111は、第1ハッシュ値算出部112に選択結果としてチャンク名を通知する。一方、第2ハッシュ値が"2"であると、選択部111は、第1ハッシュ値算出部112に選択結果としてナンス値を通知する。
FIG. 4A is an example of the
第1ハッシュ値算出部112は、チャンク名及びナンス値の内の選択部111から通知された値を第1ハッシュ関数の入力として、そのハッシュ値(第1ハッシュ値)を求め、決定部113に第1ハッシュ値を通知する。決定部113は、第1情報115と、第1ハッシュ値と、に基づき、転送処理部#1~転送処理部#Mの内の1つの転送処理部20を決定し、決定した転送処理部20を、チャンク名及びナンス値を通知したIF10に通知する。IF10は、決定部113から通知された転送処理部20に受信したパケットを出力する。
The first hash
図4(B)は、第1情報115の例である。第1情報115は、第1ハッシュ値と、転送処理部20との対応関係を示す情報である。図4(B)の例において、第1ハッシュ値が"0"であると、決定部113は、転送処理部#1にパケットを出力することをIF10に通知する。
FIG. 4B is an example of the
例えば、IF#1から通知されたチャンク名が"Ca"であり、その第2ハッシュ値が"0"であり、その第1ハッシュ値が"1"であるものとする。なお、第2情報114及び第1情報115は図4(A)及び図4(B)に示す通りとする。選択部111は、第2ハッシュ値が"0"であるため、第1ハッシュ値算出部112に、第1ハッシュ値の算出にチャンク名"Ca"を使用することを通知する。したがって、第1ハッシュ値算出部112は、第1ハッシュ値として"1"を決定部113に通知する。よって、決定部113は、第1情報115に基づき、転送処理部#2をIF#1に通知する。この様に、受信したパケットのチャンク名が"Ca"であると、当該パケットは、常に、転送処理部#2で処理されることになる。
For example, it is assumed that the chunk name notified from IF # 1 is "Ca", its second hash value is "0", and its first hash value is "1". The
一方、IF#1から通知されたチャンク名が"Cb"であり、その第2ハッシュ値が"2"であるものとする。なお、第2情報114及び第1情報115は図4(A)及び図4(B)に示す通りとする。選択部111は、第2ハッシュ値が"2"であるため、第1ハッシュ値算出部112に、第1ハッシュ値の算出にナンス値を使用することを通知する。したがって、第1ハッシュ値算出部112は、ナンス値に基づき第1ハッシュ値を算出して決定部113に通知する。ここで、ナンス値は、ランダムに生成された値であるため、パケットのチャンク名が"Cb"であっても、ナンス値はパケット毎に異なる。したがって、パケットのチャンク名が"Cb"であっても、第1ハッシュ値算出部112が算出する第1ハッシュ値もパケット毎に異なる。よって、パケットのチャンク名が"Cb"であっても決定部113が出力先として決定する転送処理部20は同じではなく、パケット毎に異なることになる。
On the other hand, it is assumed that the chunk name notified from IF # 1 is "Cb" and the second hash value is "2". The
例えば、要求数の少ないチャンクに関連付けられたパケットについては、同じ転送処理部20で処理しても、転送処理部20の処理能力を超えることはなく、パケット損失等の原因とはなり得ない。また、同じチャンクに関連付けられたパケットを同じ転送処理部20が処理するため、異なる転送処理部20が同じPITのエントリに同時にアクセスすることで生じ得るPITの不具合を防ぐことができる。したがって、制御部11は、第2情報114において、要求数の少ないチャンクのチャンク名による第2ハッシュ値に対応する入力値を"チャンク名"に設定する。一方、要求数の多いチャンクに関連付けられたパケットを同じ転送処理部20で処理すると、転送処理部20の処理能力を超え、パケット損失の原因となり得る。したがって、制御部11は、第2情報114において、要求数の多いチャンクのチャンク名による第2ハッシュ値に対応する入力値を"ナンス値"に設定する。これにより、要求数の多いチャンクに関連付けられたパケットは、複数の転送処理部20により分散して処理されることになり、パケット損失の発生を抑えることができる。
For example, even if a packet associated with a chunk having a small number of requests is processed by the same
このため、制御部11は、IF10がパケットを受信した際にIF10から通知されるチャンク名に基づき、各チャンクの人気度を求める。チャンクの人気度は、例えば、所定期間において受信した当該チャンクを要求するインタレスト・パケットの合計数とすることができる。そして、制御部11は、人気度(合計数)を閾値と比較することで、チャンクを人気度の高い第1チャンクと、人気度の低い第2チャンクに分類する。第1チャンクは、合計数が閾値より大きいチャンクであり、第2チャンクは合計数が閾値以下のチャンクである。制御部11は、第1チャンクのチャンク名による第2ハッシュ値を求め、第2情報114のこの第2ハッシュ値に対応する入力値を"ナンス値"に設定し、それ以外の第2ハッシュ値に対応する入力値を"チャンク名"に設定する。制御部114は、各チャンクの人気度を求めて第1チャンクを判定する処理と、判定結果に基づき第2情報114を更新する処理を所定期間毎に繰り返す。この構成により、パケット損失を抑えつつ、パケットの転送処理を複数の転送処理部20に分散させることができ、転送装置100のスループットを高くすることができる。
Therefore, the
上述した構成により、人気度が閾値以下である第2チャンクに関連付けられたパケットは、同じ転送処理部20により処理されるため、異なる転送処理部20が同時にPITの同じエントリにアクセスすることは生じず、よって、PITに不具合は生じない。しかしながら、人気度が閾値より大きい第1チャンクに関するパケットは、異なる転送処理部20により処理されるため、異なる転送処理部20が同時にPITの同じエントリにアクセスすることが生じ得る。このため、本実施形態では、第1チャンクに関連付けられたパケットを転送処理部20が処理する際、当該転送処理部20にPITの排他制御を行わせる。
Due to the above configuration, the packet associated with the second chunk whose popularity is less than or equal to the threshold value is processed by the same
例えば、制御部11は、ナンス値を使用して転送処理部20を決定した際、決定した転送処理部20にPITの排他制御を行うことを通知する構成とすることができる。本実施形態では、パケットのヘッダ領域を使用して、転送処理部20にPITの排他制御を行うことを通知する。このため、図2に示すパケットのヘッダ領域に、ロック・フィールドを設ける。そして、第1ハッシュ値算出部112は、選択結果として"チャンク名"が通知された場合、第1ハッシュ値と共に"ロック不要"を示す情報を決定部113に通知する。一方、選択結果として"ナンス値"が通知された場合、第1ハッシュ値算出部112は、第1ハッシュ値と共に"ロック要"を示す情報を決定部113に通知する。決定部113は、決定した転送処理部20を示す情報と共に、第1ハッシュ値算出部112から通知された、"ロック不要"又は"ロック要"を示す情報をIF10に通知する。
For example, when the
IF10は、決定部113から通知された転送処理部20にパケットを出力する際、決定部113から"ロック不要"が通知されていると、当該パケットのロック・フィールドに、例えば、値"0"を設定し、"ロック要"が通知されていると、当該パケットのロック・フィールドに、例えば、値"1"を設定する。転送処理部20は、ロック・フィールドに値"0"が設定されていると、PITの排他制御を行わず、ロック・フィールドに値"1"が設定されていると、PITの排他制御を行う。
When the IF10 outputs a packet to the
具体的には、図5に示す様に、PITにロック状態フィールドを設ける。ロック状態フィールドには、値"0"又は値"1"が設定され、値"0"はアンロック状態を示し、値"1"はロック状態を示す。転送処理部20は、受信したパケットのロック・フィールドの値が"0"であると、PITの処理対象のエントリのロック状態フィールドの値に拘わらず当該パケットの転送処理と、処理対象のエントリに対するエントリ処理を実行する。一方、受信したパケットのロック・フィールドの値が"1"である場合、PITの処理対象のエントリのロック状態フィールドの値をまず検査する。そして、PITの処理対象のエントリのロック状態フィールドの値が"1"、つまり、ロック状態であると、値が"0"、つまりアンロック状態になるまで待機する。処理対象のPITエントリがアンロック状態である場合、転送処理部20は、転送処理及びエントリ処理を開始するが、この際、転送処理部20は、まず、処理対象のエントリのロック状態フィールドの値を"1"に設定して処理対象のエントリをロック状態にする。そして、転送処理部20は転送処理及びエントリ処理を実行し、これらの処理が完了すると、処理対象のエントリのロック状態フィールドの値を"0"に設定してアンロック状態にする。
Specifically, as shown in FIG. 5, a locked state field is provided in the PIT. A value "0" or a value "1" is set in the locked state field, a value "0" indicates an unlocked state, and a value "1" indicates a locked state. When the value of the lock field of the received packet is "0", the
この様に、本実施形態では、総てのパケットの処理においてPITの排他制御を行うのではなく、一部のパケットの処理においてのみPITの排他制御を行うため、排他制御の実行によるスループットの低下を抑えることができる。 As described above, in the present embodiment, the exclusive control of the PIT is not performed in the processing of all packets, but the exclusive control of the PIT is performed only in the processing of some packets, so that the throughput is reduced due to the execution of the exclusive control. Can be suppressed.
なお、本実施形態において、制御部11は、第1ハッシュ関数と第2ハッシュ関数の2つのハッシュ関数を使用していたが、第1ハッシュ関数と第2ハッシュ関数は、異なる関数であっても、同じ関数であっても良い。さらに、本実施形態では、第1ハッシュ値に基づきパケットの転送処理を行う転送処理部20を決定し、第1ハッシュ値を求めるための第1ハッシュ関数の入力値を、第2ハッシュ値に基づき制御していた。しかしながら、第1チャンクに関連付けられたパケットを複数の転送処理部20に分散させて処理し、第2チャンクに関連付けられたパケットについては、基本的には、同じ1つの転送処理部20で処理すれば良く、第1チャンクに関連付けられたパケットを複数の転送処理部20に分散させる方法は、上記構成に限定されない。
In the present embodiment, the
例えば、制御部11は、上記実施形態で説明した様に閾値に基づき第1チャンクを判定する。そして、第1チャンクとは判定されなかったチャンク(第2チャンク)については、上記実施形態と同様に、チャンク名に基づき1つの転送処理部20を決定してIF10に通知する。一方、第1チャンクについては、複数の転送処理部20から1つの転送処理部20をランダムに選択してIF10に通知する構成とすることもできる。例えば、第1チャンクについては、乱数を生成し、生成した乱数に基づき求めた第1ハッシュ値により、当該第1チャンクに関連付けられたパケットを転送する転送処理部20を決定する構成とすることもできる。また、複数の転送処理部20の選択順序を、例えば、ラウンドロビン形式で予め決めておき、第1チャンクについては、選択順序に従い複数の転送処理部20から1つの転送処理部20を選択してIF10に通知する構成とすることもできる。
For example, the
なお、上記実施形態において制御部11は、人気度の高い第1チャンクを判定し、第2情報114において、第1チャンクの名前の第2ハッシュ値に対応する入力値をナンス値に設定していた。この場合、人気度の低い第2チャンクの名前の第2ハッシュ値が、第1チャンクの名前の第2ハッシュ値に一致することが生じ得る。この様な場合、第2ハッシュ値が、第1チャンクの名前の第2ハッシュ値に一致する第2チャンクについては、同じ転送処理部20で処理されるのではなく、複数の転送処理部20で処理されることになる。しかしながら、この様なケースが生じる確率は低く、かつ、複数の転送処理部20で処理される場合にはPITの排他制御が行われるため問題はない。
In the above embodiment, the
纏めると、人気度の高い第1チャンクに関連付けられたパケットの転送処理については複数の転送処理部20に分散させる。一方、人気度の低い第2チャンクに関連付けられたパケットの転送処理については、基本的には、同じ1つの転送処理部20で処理させる。つまり、本発明は、人気度の低い第2チャンクに関連付けられたパケットの転送処理を同じ1つの転送処理部20で処理させる形態のみならず、人気度の低い第2チャンクに関連付けられたパケットの内の一部が、複数の転送処理部20に分散されて処理され得る形態と、を含むものである。
In summary, the transfer processing of the packet associated with the popular first chunk is distributed to a plurality of
また、本発明による転送装置100は、複数のIF10と、1つ以上のプロセッサと、プログラムを格納する1つ以上のメモリと、を有する装置で実現することができる。この場合、1つ以上のメモリに格納されたプログラムは、1つ以上のプロセッサで実行されると、当該装置を上記転送装置100として機能・動作させるための命令を含んでいる。また、このプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
Further, the
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。 The invention is not limited to the above embodiment, and various modifications and changes can be made within the scope of the gist of the invention.
10:インタフェース、20:転送処理部、11:制御部 10: Interface, 20: Transfer processing unit, 11: Control unit
Claims (11)
複数の通信インタフェースと、
前記パケットの転送処理を行う複数の転送処理手段と、
前記複数の通信インタフェースの内の通信インタフェースが前記パケットを受信した際、前記複数の転送処理手段から、当該パケットの転送処理を行う転送処理手段を決定する制御を行う制御手段と、
を備え、
前記制御手段は、前記複数の通信インタフェースが受信した前記パケットに基づき、前記コンテンツを、第1コンテンツと、前記第1コンテンツより人気度の低い第2コンテンツに分類し、前記第1コンテンツに関連付けられた前記パケットの転送処理を行う前記転送処理手段を前記複数の転送処理手段に分散させることを特徴とする転送装置。 A transfer device of a content distribution system that transfers the packet based on the name of the content associated with the packet.
With multiple communication interfaces
A plurality of forwarding processing means for performing the forwarding processing of the packet, and
When the communication interface among the plurality of communication interfaces receives the packet, the control means for controlling the plurality of transfer processing means to determine the transfer processing means for performing the transfer processing of the packet, and the control means.
Equipped with
Based on the packet received by the plurality of communication interfaces, the control means classifies the content into a first content and a second content which is less popular than the first content, and is associated with the first content. A transfer device, characterized in that the transfer processing means for performing the transfer processing of the packet is distributed to the plurality of transfer processing means.
第1ハッシュ関数による第1ハッシュ値を求める第1算出手段と、
前記第1ハッシュ値に基づき前記パケットの転送処理を行う前記転送処理手段を決定する決定手段と、
を備え、
前記制御手段は、前記第1コンテンツに関連付けられた前記パケットの転送処理を行う前記転送処理手段を決定する場合、乱数を前記第1算出手段への入力とし、前記第2コンテンツに関連付けられた前記パケットの転送処理を行う前記転送処理手段を決定する場合、前記第2コンテンツの名前を前記第1算出手段への入力とすることを特徴とする請求項1から3のいずれか1項に記載の転送装置。 The control means is
The first calculation means for obtaining the first hash value by the first hash function,
A determining means for determining the forwarding processing means for performing the forwarding processing of the packet based on the first hash value, and
Equipped with
When the control means determines the transfer processing means that performs the transfer processing of the packet associated with the first content, the random number is input to the first calculation means, and the control means associated with the second content. The method according to any one of claims 1 to 3, wherein when the transfer processing means for performing the packet transfer processing is determined, the name of the second content is input to the first calculation means. Transfer device.
前記制御手段は、前記第2ハッシュ値に対応する前記コンテンツが前記第1コンテンツであるか前記第2コンテンツであるかを示す対応関係情報を管理し、前記パケットの転送処理を行う前記転送処理手段を決定する際、当該パケットに関連付けられた前記コンテンツの名前を前記第2算出手段の入力とすることで求めた前記第2ハッシュ値と、前記対応関係情報とに基づき、当該パケットに関連付けられた前記コンテンツが前記第1コンテンツであるか前記第2コンテンツであるかを判定し、
前記制御手段は、前記複数の通信インタフェースで受信した前記パケットに基づき、前記コンテンツを前記第1コンテンツと前記第2コンテンツに分類すると、分類結果に基づき前記対応関係情報を更新することを特徴とする請求項6に記載の転送装置。 The control means further includes a second calculation means for obtaining a second hash value by a second hash function.
The control means manages correspondence information indicating whether the content corresponding to the second hash value is the first content or the second content, and performs the transfer processing of the packet. Was associated with the packet based on the second hash value obtained by inputting the name of the content associated with the packet as the input of the second calculation means and the correspondence information. It is determined whether the content is the first content or the second content, and the content is determined.
The control means is characterized in that when the content is classified into the first content and the second content based on the packet received by the plurality of communication interfaces, the correspondence information is updated based on the classification result. The transfer device according to claim 6.
前記通信インタフェースは、当該パケットの所定フィールドに、当該パケットに関連付けられた前記コンテンツが前記第1コンテンツであるか、前記第2コンテンツであるかを示す情報を設定して、当該パケットを前記制御手段から通知された前記転送処理手段に出力することを特徴とする請求項1から7のいずれか1項に記載の転送装置。 When the control means determines the transfer processing means for performing the transfer processing of the packet, the communication interface determines whether the determined transfer processing means and the content associated with the packet are the first content. Notify if it is the second content,
The communication interface sets information indicating whether the content associated with the packet is the first content or the second content in a predetermined field of the packet, and controls the packet by the control means. The transfer device according to any one of claims 1 to 7, wherein the transfer device is output to the transfer processing means notified from.
前記転送処理手段は、前記通信インタフェースから前記パケットを受信すると、前記パケットの前記所定フィールドに設定された情報に基づき、前記テーブルに対する処理において排他制御を行うか否かを判定することをと特徴とする請求項8に記載の転送装置。 Further provided with a storage means for storing a table indicating that the packet requesting the content is forwarded and waiting for reception of the packet carrying the content and the communication interface for transmitting the packet carrying the content is provided.
The transfer processing means is characterized in that when it receives the packet from the communication interface, it determines whether or not exclusive control is performed in the processing for the table based on the information set in the predetermined field of the packet. The transfer device according to claim 8.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020159724A JP7335216B2 (en) | 2020-09-24 | 2020-09-24 | TRANSFER DEVICE AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020159724A JP7335216B2 (en) | 2020-09-24 | 2020-09-24 | TRANSFER DEVICE AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022053105A true JP2022053105A (en) | 2022-04-05 |
JP7335216B2 JP7335216B2 (en) | 2023-08-29 |
Family
ID=80963321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020159724A Active JP7335216B2 (en) | 2020-09-24 | 2020-09-24 | TRANSFER DEVICE AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7335216B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004248132A (en) * | 2003-02-17 | 2004-09-02 | Nippon Telegr & Teleph Corp <Ntt> | Content distribution method, client device, program and recording medium |
CN1842799A (en) * | 2004-07-21 | 2006-10-04 | 索尼株式会社 | Content processing device, content processing method, and computer program |
JP2009165159A (en) * | 2009-03-11 | 2009-07-23 | Hitachi Ltd | Network relaying equipment |
JP2015162686A (en) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | Cache control device, method and program |
US9178806B2 (en) * | 2012-07-31 | 2015-11-03 | Alcatel Lucent | High-speed content routing |
-
2020
- 2020-09-24 JP JP2020159724A patent/JP7335216B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004248132A (en) * | 2003-02-17 | 2004-09-02 | Nippon Telegr & Teleph Corp <Ntt> | Content distribution method, client device, program and recording medium |
CN1842799A (en) * | 2004-07-21 | 2006-10-04 | 索尼株式会社 | Content processing device, content processing method, and computer program |
JP2009165159A (en) * | 2009-03-11 | 2009-07-23 | Hitachi Ltd | Network relaying equipment |
US9178806B2 (en) * | 2012-07-31 | 2015-11-03 | Alcatel Lucent | High-speed content routing |
JP2015162686A (en) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | Cache control device, method and program |
Non-Patent Citations (1)
Title |
---|
"情報指向型ネットワークに適用するためのコンテンツ人気度推定方式", 電子情報通信学会2018年総合大会, JPN6023010753, 6 March 2018 (2018-03-06), ISSN: 0005015521 * |
Also Published As
Publication number | Publication date |
---|---|
JP7335216B2 (en) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271578B2 (en) | Bidirectional data transfer optimization and content control for networks | |
JP2004070860A (en) | Stream contents distribution system and proxy server | |
JP6601784B2 (en) | Method, network component, and program for supporting context-aware content requests in an information-oriented network | |
US20170031908A1 (en) | Efficient parallel insertion into an open hash table | |
US9015438B2 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores | |
Wu et al. | N-DISE: NDN-based data distribution for large-scale data-intensive science | |
US11184460B2 (en) | Server device and transfer device for content distribution system | |
JP7335216B2 (en) | TRANSFER DEVICE AND PROGRAM FOR CONTENT DISTRIBUTION SYSTEM | |
JP6474710B2 (en) | Communication apparatus and program | |
JP6495777B2 (en) | Transfer device, server device, and program for content distribution network | |
JP6546566B2 (en) | Parallel load distribution system, parallel load distribution method, SDN controller host and program | |
JP6430849B2 (en) | Transfer device for content distribution network | |
JP7028811B2 (en) | Content delivery network transporter | |
JP6590774B2 (en) | Server device, transfer device, and program for content distribution system | |
US20210029212A1 (en) | Transfer apparatus for content distribution network | |
JP2021114707A (en) | Transfer device and program for content distribution system | |
JP6516692B2 (en) | Transfer device and program for content distribution network | |
JP7084365B2 (en) | Transporters and programs for content distribution systems | |
Watano et al. | Interest re-route control according to degree of similarity on cached contents using bloom filter on NDN | |
JP6591946B2 (en) | Server device, transfer device, and program for content distribution system | |
JP7463314B2 (en) | Content delivery network client device and program | |
JP2019145900A (en) | Client device and program for content distribution network | |
JP6718397B2 (en) | Router device, control method thereof, and program | |
JP2008131351A (en) | Cache system, cache device, packet processor, caching method, packet processing method, caching program, and packet processing program | |
KR101755620B1 (en) | Network device and control method of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A80 | Written request to apply exceptions to lack of novelty of invention |
Free format text: JAPANESE INTERMEDIATE CODE: A80 Effective date: 20201006 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210203 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220531 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230320 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230414 |
|
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: 20230721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7335216 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |