Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6135078B2 - Information processing method and information processing apparatus for arrival confirmation message - Google Patents
[go: Go Back, main page]

JP6135078B2 - Information processing method and information processing apparatus for arrival confirmation message - Google Patents

Information processing method and information processing apparatus for arrival confirmation message Download PDF

Info

Publication number
JP6135078B2
JP6135078B2 JP2012203427A JP2012203427A JP6135078B2 JP 6135078 B2 JP6135078 B2 JP 6135078B2 JP 2012203427 A JP2012203427 A JP 2012203427A JP 2012203427 A JP2012203427 A JP 2012203427A JP 6135078 B2 JP6135078 B2 JP 6135078B2
Authority
JP
Japan
Prior art keywords
identifier
identifiers
bit string
range
source node
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
JP2012203427A
Other languages
Japanese (ja)
Other versions
JP2014060533A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012203427A priority Critical patent/JP6135078B2/en
Publication of JP2014060533A publication Critical patent/JP2014060533A/en
Application granted granted Critical
Publication of JP6135078B2 publication Critical patent/JP6135078B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

本技術は、通信ノード間の通信パスが不確定なネットワークの通信技術に関する。   The present technology relates to a network communication technology in which a communication path between communication nodes is uncertain.

モバイル端末や固定端末(これらについては、以下通信ノード、又は単にノードと呼ぶ)間でデータの送受信を行い、各ノードが受信したデータを蓄積、運搬(モバイル端末のみ)、転送を行うようなネットワークが考案されている。このように、送信元ノードと宛先ノードとの間の通信パスが常に存在するとは限らないような、すなわち通信パスが不確定な通信環境においてもデータ転送が可能となるネットワークは、遅延耐性ネットワーク(Delay Tolerant Network)又は途絶耐性ネットワーク(DTN:Disruption-Tolerant Network)と呼ばれる。   A network in which data is transmitted and received between mobile terminals and fixed terminals (hereinafter referred to as communication nodes or simply nodes), and data received by each node is stored, transported (only mobile terminals), and transferred Has been devised. In this way, a network that does not always have a communication path between a source node and a destination node, that is, a network that can transfer data even in a communication environment in which the communication path is indeterminate, is a delay tolerant network ( It is called Delay Tolerant Network (DTN) or Disruption-Tolerant Network (DTN).

DTNにおいては、送信元ノードから宛先ノードまでのEnd-to-Endのデータ転送にかかる時間が長く、またパケットロスや通信回線の切断が頻繁に発生する等の劣悪な通信環境を含むことがあり、このような通信環境においても効率的にデータ転送を行うことが求められている。   In DTN, it takes a long time to transfer end-to-end data from a source node to a destination node, and it may include a poor communication environment such as frequent packet loss and communication line disconnection. Even in such a communication environment, efficient data transfer is required.

DTNにおいては、移動可能な移動ノードや移動不可能な固定ノードがデータの転送を繰り返すことで送信元ノードから宛先ノードへデータを届けることになる。具体的には、データを受信したノードは、転送先となるノードが近くにいない場合、その受信データを一旦自身の記憶領域に蓄積する。その後、自ノード又は他ノードの移動により、他のノードが近接することでデータの転送を行う。このようにEnd-to-Endの通信パスが常に存在するとは限らないような通信環境においても、データ転送が可能となる。   In DTN, a mobile node that can move or a fixed node that cannot move moves data from the source node to the destination node by repeating data transfer. Specifically, when a node that receives data is not near a transfer destination node, the node temporarily stores the received data in its own storage area. Thereafter, the data is transferred when another node comes close by the movement of the own node or another node. In this way, data transfer is possible even in a communication environment in which an end-to-end communication path does not always exist.

DTN上のノードはデータ転送を行うために、他のノードから受信したデータを自身の記憶領域(ハードディスクドライブ、メモリなど)に一時的にキャッシュとして蓄積する。しかしながら、ノードの記憶領域の容量には制限があり、新たに送信元ノードから発生するデータを蓄積及び転送するためには、宛先ノードに到達したデータのキャッシュを消去することが好ましい。そのため、データの宛先ノードは、データの到達を送信元ノード及び転送ノードに対して伝えるために、到達確認メッセージ、すなわちACKメッセージをDTN上で伝送することが好ましい。一方で、データが宛先ノードに到達する度にACKメッセージを送信すると、DTN上に大量のACKメッセージが伝播することになる。これは、通信効率上好ましくない。   A node on the DTN temporarily stores data received from another node as a cache in its own storage area (hard disk drive, memory, etc.) in order to transfer data. However, the capacity of the storage area of the node is limited, and it is preferable to erase the cache of data that has reached the destination node in order to store and transfer data newly generated from the transmission source node. Therefore, it is preferable that the destination node of data transmits an arrival confirmation message, that is, an ACK message on the DTN in order to notify the arrival of data to the transmission source node and the forwarding node. On the other hand, if an ACK message is transmitted every time data reaches the destination node, a large amount of ACK messages are propagated on the DTN. This is not preferable in terms of communication efficiency.

図1に示すように、インターネットなどの通常の通信環境においては、左端のサーバから右端のサーバへデータを送信する場合、左端のサーバは、当該データを含むパケットにシーケンス番号を付与して送信する。このようなネットワークでは、途中でパケットが無くなったり大幅に遅延したりすることはあまりないので、右端のサーバは、連続して受信したパケットに付与されたシーケンス番号のうち最大のシーケンス番号を含むACKパケットを、左端のサーバに送信する。例えば、最大のシーケンス番号が「4」であれば、「4」を含むACKパケットを送信する。左端のサーバは、ACKパケットを受信すると、当該ACKパケットに含まれるシーケンス番号以下のシーケンス番号についてのパケットのデータを破棄する。シーケンス番号「4」を含むACKパケットの場合には、0乃至4のシーケンス番号に係るデータを破棄することになる。   As shown in FIG. 1, in a normal communication environment such as the Internet, when transmitting data from the left end server to the right end server, the left end server transmits a packet including the data with a sequence number. . In such a network, it is unlikely that packets will be lost or greatly delayed in the middle, so the rightmost server will receive an ACK containing the largest sequence number among the sequence numbers assigned to consecutively received packets. Send the packet to the leftmost server. For example, if the maximum sequence number is “4”, an ACK packet including “4” is transmitted. When receiving the ACK packet, the leftmost server discards the packet data for the sequence number equal to or less than the sequence number included in the ACK packet. In the case of an ACK packet including the sequence number “4”, the data related to the sequence numbers 0 to 4 is discarded.

DTNでは、途中でパケットが無くなったり大幅に遅延したりする場合があるので、このような技術は、連続してパケットを受信できない場合がある。例えば、シーケンス番号「0」「2」「4」といったように、とびとびのシーケンス番号のパケットを受信する場合もある。受信したパケットのシーケンス番号が連続していないので、最大のシーケンス番号は「0」となり、ACKパケットを集約できない。   In DTN, there are cases where packets are lost or greatly delayed in the middle of the process, so such a technique may not be able to continuously receive packets. For example, a packet with a sequence number such as sequence numbers “0”, “2”, and “4” may be received. Since the sequence numbers of the received packets are not consecutive, the maximum sequence number is “0”, and ACK packets cannot be aggregated.

特開2011−4333号公報JP 2011-4333 A 特開2011−172196号公報JP 2011-172196 A

「DTN:遅延と仲良くするネットワーク」、通信ソサイエティマガジンNo.16 [春号]2011“DTN: Network to make friends with delay”, Communications Society Magazine No.16 [Spring] 2011 「DTN技術の現状と展望」、通信ソサイエティマガジンNo.16 [春号]2011“Current Status and Prospects of DTN Technology”, Communications Society Magazine No.16 [Spring] 2011 Wing Ho Yuen, et. al, "IMPROVING SEARCH EFFICIENCY USING BLOOM FILTER IN PARTIALLY CONNECTED AD HOC NETWORKS, A NODE-CENTRIC ANALYSIS", Global Telecommunications Conference, 2006. GLOBECOM '06. IEEEWing Ho Yuen, et. Al, "IMPROVING SEARCH EFFICIENCY USING BLOOM FILTER IN PARTIALLY CONNECTED AD HOC NETWORKS, A NODE-CENTRIC ANALYSIS", Global Telecommunications Conference, 2006. GLOBECOM '06. IEEE

従って、本技術の目的は、一側面として、通信ノード間の通信パスが不確定なネットワークにおいて効率よく到達確認メッセージを送信できるようにするための技術を提供することである。   Therefore, an object of the present technology is to provide a technology for efficiently transmitting an arrival confirmation message in a network in which a communication path between communication nodes is indefinite.

本技術の第1の態様に係る到着確認メッセージ送信方法は、(A)ある送信元ノードから受信されたデータの識別子の集合を、識別子が上記集合に包含されているか否かを確認するためのビット列に写像する処理と、(B)上記集合に含まれる識別子の範囲を規定するデータと上記ビット列とを含む到着確認メッセージを、ある送信元ノード宛に送信する処理とを含む。   An arrival confirmation message transmission method according to the first aspect of the present technology includes (A) a method for confirming whether a set of identifiers of data received from a certain source node is included in the set. A process of mapping to a bit string; and (B) a process of transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to a certain source node.

本技術の第2の態様に係るデータ削除方法は、(C)ある送信元ノードから受信されたデータの識別子の集合の範囲を規定するデータと、識別子が上記集合に包含されているか否かを確認するためのビット列とを含む到着確認メッセージを受信する処理と、(D)ある送信元ノードについてのデータ及び当該データの識別子とを格納するデータ格納部から、到着確認メッセージに含まれる上記データから特定される範囲に含まれる識別子を抽出する処理と、(E)上記ビット列に基づき、抽出された識別子が、上記集合に包含されているか否かを判断する処理と、(F)上記集合に包含されていると判断された識別子及び当該識別子についてのデータを、データ格納部から削除する処理とを含む。   In the data deletion method according to the second aspect of the present technology, (C) data defining a set range of identifiers of data received from a certain transmission source node, and whether or not the identifiers are included in the set. From the data included in the arrival confirmation message, the process of receiving the arrival confirmation message including the bit string for confirmation, and (D) the data storage unit that stores the data about the source node and the identifier of the data. A process of extracting an identifier included in a specified range; (E) a process of determining whether the extracted identifier is included in the set based on the bit string; and (F) an included in the set. And the process of deleting the data about the identifier determined to have been deleted from the data storage unit.

通信ノード間の通信パスが不確定なネットワークにおいて効率よく到達確認メッセージを送信できるようになる。   An arrival confirmation message can be efficiently transmitted in a network in which a communication path between communication nodes is uncertain.

図1は、通常のネットワークにおけるACKメッセージの送信について説明するための図である。FIG. 1 is a diagram for explaining transmission of an ACK message in a normal network. 図2は、DTNにおけるデータパケットの伝送の様子を模式的に示す図である。FIG. 2 is a diagram schematically showing a state of data packet transmission in DTN. 図3は、DTNにおけるACKパケットの伝送の様子を模式的に示す図である。FIG. 3 is a diagram schematically showing a state of transmission of an ACK packet in DTN. 図4は、本技術の実施の形態の概要を説明する図である。FIG. 4 is a diagram illustrating an overview of the embodiment of the present technology. 図5は、送信元ノードとして機能するノードの機能ブロック図である。FIG. 5 is a functional block diagram of a node that functions as a transmission source node. 図6は、転送ノードとして機能するノードの機能ブロック図である。FIG. 6 is a functional block diagram of a node that functions as a forwarding node. 図7は、宛先ノードとして機能するノードの機能ブロック図である。FIG. 7 is a functional block diagram of a node that functions as a destination node. 図8は、宛先ノードの受信部で実行される処理の処理フローを示す図である。FIG. 8 is a diagram illustrating a processing flow of processing executed by the receiving unit of the destination node. 図9は、宛先ノードのデータ格納部に格納されるデータの一例を示す図である。FIG. 9 is a diagram illustrating an example of data stored in the data storage unit of the destination node. 図10は、宛先ノードで実行される処理の処理フローを示す図である。FIG. 10 is a diagram illustrating a processing flow of processing executed in the destination node. 図11は、第1の前処理の処理フローを示す図である。FIG. 11 is a diagram illustrating a processing flow of the first preprocessing. 図12は、第2の前処理の処理フローを示す図である。FIG. 12 is a diagram illustrating a processing flow of the second preprocessing. 図13は、ブルームフィルタを説明するための図である。FIG. 13 is a diagram for explaining the Bloom filter. 図14は、ブルームフィルタを説明するための図である。FIG. 14 is a diagram for explaining the Bloom filter. 図15は、誤検出検証処理の処理フローを示す図である。FIG. 15 is a diagram illustrating a processing flow of an erroneous detection verification process. 図16は、誤検出検証処理について説明するための図である。FIG. 16 is a diagram for explaining the false detection verification process. 図17は、ACKパケットの構成例を示す図である。FIG. 17 is a diagram illustrating a configuration example of an ACK packet. 図18は、転送ノード及び送信元ノードに格納されるデータの一例を示す図である。FIG. 18 is a diagram illustrating an example of data stored in the forwarding node and the transmission source node. 図19は、転送ノード及び送信元ノードにおいてACKパケットを受信した場合の処理の処理フローを示す図である。FIG. 19 is a diagram illustrating a processing flow of processing when an ACK packet is received at a forwarding node and a transmission source node. 図20は、転送ノード及び送信元ノードにおいてACKパケットを受信した場合の処理の処理フローを示す図である。FIG. 20 is a diagram illustrating a processing flow of processing when an ACK packet is received at a forwarding node and a transmission source node. 図21は、ノードである情報処理装置の機能ブロック図である。FIG. 21 is a functional block diagram of an information processing apparatus that is a node.

図2は、DTNにおけるデータパケット(又はデータメッセージ)の伝送の様子を例示する図である。図2の例では、左端に示された固定の送信元ノード1001から右端に示された固定の宛先ノード1007へデータを送信する場合を示している。この例では、移動可能な転送ノード1002が、送信元ノード1001に接近してきたところで、送信元ノード1001は、データパケットを転送ノード1002に送信し、転送ノード1002は、データパケットを受信してキャッシュに蓄積する。転送ノード1002の付近に他の転送ノードがなければ、データパケットの転送が行われないが、例えば転送ノード1002が移動して付近に固定の転送ノード1003や移動可能な転送ノード1005が近接すると、転送ノード1002は、キャッシュに格納されているデータパケットを転送する。転送ノード1003は、受信したデータパケットをキャッシュし、移動可能な転送ノード1004が近づいてくると、当該転送ノード1004にキャッシュ内のデータパケットを転送する。また、転送ノード1005は、転送ノード1002からデータパケットを受信すると、当該データパケットをキャッシュして移動する。そして、転送ノード1005は、宛先ノード1007と通信可能な程度に近づくと、キャッシュしているデータパケットを宛先ノード1007に送信する。このようにして、送信元ノード1001から宛先ノード1007までデータパケットが転送されることになる。   FIG. 2 is a diagram illustrating a state of transmission of a data packet (or data message) in DTN. In the example of FIG. 2, data is transmitted from the fixed transmission source node 1001 shown at the left end to the fixed destination node 1007 shown at the right end. In this example, when the movable transfer node 1002 approaches the transmission source node 1001, the transmission source node 1001 transmits a data packet to the transfer node 1002, and the transfer node 1002 receives the data packet and caches it. To accumulate. If there is no other forwarding node in the vicinity of the forwarding node 1002, the data packet is not forwarded. For example, when the forwarding node 1002 moves and a fixed forwarding node 1003 or a movable forwarding node 1005 is in the vicinity, The forwarding node 1002 forwards the data packet stored in the cache. The forwarding node 1003 caches the received data packet, and when the movable forwarding node 1004 approaches, forwards the data packet in the cache to the forwarding node 1004. When the forwarding node 1005 receives a data packet from the forwarding node 1002, the forwarding node 1005 caches and moves the data packet. When the forwarding node 1005 comes close to the extent that it can communicate with the destination node 1007, the forwarding node 1005 transmits the cached data packet to the destination node 1007. In this way, the data packet is transferred from the source node 1001 to the destination node 1007.

また、図3は、DTNにおけるACKパケット(又はACKメッセージ)の伝送の様子を例示する図である。基本的には図2の逆方向に送信元ノード1001宛にACKパケットを送信することになるが、必ずしも同じノードが用いられるわけではない。宛先ノード1007は、以下で詳細に述べるACKパケットを、その際に近隣に存在する移動可能な転送ノード1005に送信する。転送ノード1005は、以下で述べるようにACKパケットに含まれるデータに基づきキャッシュからデータを削除する処理を実行する。さらに転送ノード1005は移動して、固定の転送ノード1003や移動可能な転送ノード1103の付近にやってくる。そうすると、転送ノード1005は、ACKパケットを、転送ノード1003及び1103に送信する。   FIG. 3 is a diagram illustrating a state of transmission of an ACK packet (or ACK message) in DTN. Basically, an ACK packet is transmitted to the source node 1001 in the reverse direction of FIG. 2, but the same node is not necessarily used. The destination node 1007 transmits an ACK packet, which will be described in detail below, to the movable forwarding node 1005 existing in the neighborhood at that time. The forwarding node 1005 executes processing for deleting data from the cache based on the data included in the ACK packet as described below. Further, the forwarding node 1005 moves to come near the fixed forwarding node 1003 or the movable forwarding node 1103. Then, forwarding node 1005 transmits an ACK packet to forwarding nodes 1003 and 1103.

転送ノード1003は、ACKパケットを受信すると、以下で述べるようにACKパケットに含まれるデータに基づきキャッシュからデータを削除する処理を実行する。また、移動可能な転送ノード1102が近づいてくると、転送ノード1003は、ACKパケットを転送ノード1102に転送する。また、転送ノード1103は、ACKパケットを受信した後、移動を開始する。そして、転送ノード1103は、送信元ノード1001に近づいて通信可能な状態になると、ACKパケットを転送する。そうすると、送信元ノード1001も、以下で述べるようにACKパケットに含まれるデータに基づきキャッシュからデータを削除する処理を実行する。   When receiving the ACK packet, the forwarding node 1003 executes a process of deleting data from the cache based on the data included in the ACK packet as described below. When the movable transfer node 1102 approaches, the transfer node 1003 transfers the ACK packet to the transfer node 1102. Further, the forwarding node 1103 starts moving after receiving the ACK packet. When the forwarding node 1103 approaches the transmission source node 1001 and becomes communicable, the forwarding node 1103 forwards the ACK packet. Then, the transmission source node 1001 also executes a process of deleting data from the cache based on the data included in the ACK packet as described below.

このような処理を様々なノード間で実施することで、DTN上でデータ通信が行われるようになる。なお、実施の形態では説明を簡単にするため、送信元ノード、転送ノード、宛先ノードの区別をつけて説明するが、いずれのノードも送信元ノード、転送ノード又は宛先ノードとして機能する。   By performing such processing between various nodes, data communication is performed on the DTN. In the embodiment, for simplification of description, the source node, the forwarding node, and the destination node are distinguished from each other. However, any node functions as the source node, the forwarding node, or the destination node.

なお、本実施の形態は、図4に模式的に示すように、左端の送信元ノードから、シーケンシャルな識別番号「0」乃至「9」のデータパケットを、右端の宛先ノードまで送信したが、宛先ノードでは識別番号「0」「2」及び「4」のデータパケットしか受信できていないような場合に有効である。すなわち、この場合識別番号「0」「2」及び「4」のデータパケットが受信済みであることを表し且ついずれの識別番号についてのデータパケットを受信したのかを確認するためのビット列を付加したACKパケットを、宛先ノードが送信元ノードへ送信する。これによって、ACKパケットの転送経路上の転送ノード及び送信元ノードにおいて、いずれのデータパケットを破棄してもよいのかを確認できるようになる。   In the present embodiment, as schematically shown in FIG. 4, the data packets with sequential identification numbers “0” to “9” are transmitted from the leftmost source node to the rightmost destination node. This is effective when the destination node can receive only the data packets having the identification numbers “0”, “2”, and “4”. That is, in this case, an ACK indicating that a data packet having identification numbers “0”, “2”, and “4” has been received and a bit string for confirming which identification packet has been received is added. The destination node transmits the packet to the source node. This makes it possible to confirm which data packet can be discarded at the transfer node and the transmission source node on the transfer path of the ACK packet.

以下、本実施の形態においてDTNに含まれるノードの構成及び当該ノードが実行する処理について説明する。   Hereinafter, a configuration of a node included in the DTN and a process executed by the node will be described in the present embodiment.

図5は、送信元ノードとして機能するノード100の機能ブロック図を示す。送信元ノード100は、通信インタフェース101と、送信部102と、受信部103と、データ生成部104と、ID生成部105と、データ削除処理部106と、データ格納部107とを有する。   FIG. 5 shows a functional block diagram of the node 100 functioning as a transmission source node. The transmission source node 100 includes a communication interface 101, a transmission unit 102, a reception unit 103, a data generation unit 104, an ID generation unit 105, a data deletion processing unit 106, and a data storage unit 107.

通信インタフェース101は、例えば無線通信処理を行うモジュールである。データ生成部104は、他のノードに送信すべきデータを生成する。生成されるデータは、例えば、位置センサなどのセンサの出力データや処理のログデータ等である。   The communication interface 101 is a module that performs wireless communication processing, for example. The data generation unit 104 generates data to be transmitted to other nodes. The generated data is, for example, output data of a sensor such as a position sensor, processing log data, or the like.

送信部102は、データ生成部104によって生成された、他のノードに送信すべきデータからパケットを生成して通信インタフェース101を介して送信する。ID生成部105は、例えば送信部102と連携して、宛先ノードの識別子毎に、送信するパケットの識別子(ID)であるシーケンシャルな識別番号を順次生成して、送信部102に出力する。送信部102は、宛先ノードの識別子及び識別番号に対応付けて、送信したデータをデータ格納部107に格納する。なお、データ生成部104が、ID生成部105と連携して、宛先ノードの識別子毎に識別番号を生成させ、データと共にデータ格納部107に格納するようにしても良い。   The transmission unit 102 generates a packet from the data to be transmitted to other nodes generated by the data generation unit 104 and transmits the packet via the communication interface 101. For example, in cooperation with the transmission unit 102, the ID generation unit 105 sequentially generates a sequential identification number that is an identifier (ID) of a packet to be transmitted for each destination node identifier, and outputs the sequential identification number to the transmission unit 102. The transmission unit 102 stores the transmitted data in the data storage unit 107 in association with the identifier and identification number of the destination node. Note that the data generation unit 104 may generate an identification number for each identifier of the destination node in cooperation with the ID generation unit 105 and store it in the data storage unit 107 together with the data.

受信部103は、通信インタフェース101を介して他のノードからパケットを受信し、データ格納部107に格納し、以下で述べるようにACKパケットを受信した場合にはデータ削除処理部106に処理を実行させる。データ削除処理部106は、受信部103が受信したACKパケットに含まれるデータを用いて、データ格納部107に格納されているデータのうち削除可能なデータを特定して削除する。   The receiving unit 103 receives a packet from another node via the communication interface 101, stores the packet in the data storage unit 107, and executes processing to the data deletion processing unit 106 when an ACK packet is received as described below. Let The data deletion processing unit 106 uses the data included in the ACK packet received by the reception unit 103 to identify and delete data that can be deleted from the data stored in the data storage unit 107.

また、図6は、転送ノードとして機能するノード200の機能ブロック図を示す。転送ノード200は、通信インタフェース201と、送信部202と、受信部203と、転送処理部204と、データ削除処理部205と、データ格納部206とを有する。   FIG. 6 shows a functional block diagram of the node 200 that functions as a forwarding node. The transfer node 200 includes a communication interface 201, a transmission unit 202, a reception unit 203, a transfer processing unit 204, a data deletion processing unit 205, and a data storage unit 206.

通信インタフェース201は、例えば無線通信処理を行うモジュールである。送信部202は、転送処理部204からの指示に応じてデータ格納部206に格納されているデータパケットを、他のノードに対して送信する。受信部203は、他のノードからデータパケット及びACKパケットを受信すると、データ格納部206に格納する。データパケットは、宛先ノードの識別子及び識別番号に関連付けてデータ格納部206において管理される。なお、ACKパケットについては転送すれば削除する。   The communication interface 201 is a module that performs wireless communication processing, for example. The transmission unit 202 transmits the data packet stored in the data storage unit 206 to another node in response to an instruction from the transfer processing unit 204. When receiving the data packet and the ACK packet from another node, the receiving unit 203 stores the data packet and the ACK packet in the data storage unit 206. The data packet is managed in the data storage unit 206 in association with the identifier and identification number of the destination node. The ACK packet is deleted if transferred.

転送処理部204は、通信インタフェース201を介して他のノードが近接していることを検出すると、データ格納部206に格納されているデータパケット及びACKパケットを送信部202に送信させる。データ削除処理部205は、受信部203が受信したACKパケットに含まれるデータを用いて、データ格納部206に格納されているデータのうち削除可能なデータを特定して削除する。送信元ノード100におけるデータ削除処理部106と、転送ノード200のデータ削除処理部205とは、同様な処理を実行する。   When the transfer processing unit 204 detects that another node is close via the communication interface 201, the transfer processing unit 204 causes the transmission unit 202 to transmit the data packet and the ACK packet stored in the data storage unit 206. The data deletion processing unit 205 uses the data included in the ACK packet received by the reception unit 203 to identify and delete data that can be deleted from the data stored in the data storage unit 206. The data deletion processing unit 106 in the transmission source node 100 and the data deletion processing unit 205 in the forwarding node 200 perform similar processing.

図7は、宛先ノードとして機能するノード300の機能ブロック図である。宛先ノード300は、通信インタフェース301と、送信部302と、受信部303と、ビット列生成部304と、検証処理部305と、データ格納部306とを有する。   FIG. 7 is a functional block diagram of the node 300 that functions as a destination node. The destination node 300 includes a communication interface 301, a transmission unit 302, a reception unit 303, a bit string generation unit 304, a verification processing unit 305, and a data storage unit 306.

通信インタフェース301は、例えば無線通信処理を行うモジュールである。送信部302は、ACKパケット等を通信インタフェース301を介して送信する。受信部303は、データパケットを通信インタフェース301を介して受信し、データ格納部306に格納する。   The communication interface 301 is a module that performs wireless communication processing, for example. The transmission unit 302 transmits an ACK packet or the like via the communication interface 301. The receiving unit 303 receives the data packet via the communication interface 301 and stores it in the data storage unit 306.

ビット列生成部304は、送信元ノード毎に、受信したデータパケットの識別番号がビット列生成時に用いられたか否かを確認するためのビット列を生成する。また、検証処理部305は、ビット列生成部304により生成されたビット列の検証処理を実行する。   The bit string generation unit 304 generates a bit string for confirming whether or not the identification number of the received data packet is used when generating the bit string for each transmission source node. In addition, the verification processing unit 305 executes verification processing of the bit string generated by the bit string generation unit 304.

次に、図8乃至図17を用いて、宛先ノード300における処理について説明する。宛先ノード300の受信部303は、データパケットの受信を待機しており(図8:ステップS1)、データパケットを受信すると、データパケットのデータ部分をデータ格納部306に格納する(ステップS2)。また、受信部303は、当該データパケットから当該データパケットの送信元ノードの識別子を特定する(ステップS3)。   Next, processing in the destination node 300 will be described with reference to FIGS. The receiving unit 303 of the destination node 300 waits for reception of the data packet (FIG. 8: Step S1), and when receiving the data packet, stores the data portion of the data packet in the data storage unit 306 (Step S2). In addition, the reception unit 303 identifies the identifier of the transmission source node of the data packet from the data packet (step S3).

そして、受信部303は、送信元ノードの未処理パケット数のカウンタを1インクリメントすると共に(ステップS5)、データパケットに含まれるデータの識別子を抽出して、データ格納部306に格納する(ステップS6)。データ格納部306には、例えば図9に示すようなデータが送信元ノード毎に格納される。図9の例では、未処理パケット数のカウンタ値と、未処理の識別番号群とが格納されるようになっている。   Then, the reception unit 303 increments the counter of the number of unprocessed packets of the transmission source node by 1 (step S5), extracts the data identifier included in the data packet, and stores it in the data storage unit 306 (step S6). ). For example, data as shown in FIG. 9 is stored in the data storage unit 306 for each transmission source node. In the example of FIG. 9, a counter value of the number of unprocessed packets and an unprocessed identification number group are stored.

このような処理を、例えばユーザによる終了指示などの理由で処理終了となるまで繰り返す(ステップS7)。   Such a process is repeated until the process ends due to, for example, an end instruction from the user (step S7).

これに対してビット列生成部304、検証処理部305及び送信部302が実行する処理について図10乃至図17を用いて説明する。   In contrast, processing executed by the bit string generation unit 304, the verification processing unit 305, and the transmission unit 302 will be described with reference to FIGS.

ビット列生成部304は、データ格納部306にデータが格納されている送信元ノードのうち、例えばラウンドロビン式に1つの送信元ノードを選択する(図10:ステップS11)。そうすると、ビット列生成部304は、選択された送信元ノードについてデータ格納部306に格納されている未処理パケット数のカウンタ値が閾値以上となっているか判断する(ステップS13)。閾値以上の個数のデータパケットを受信してまとめて集約してACKパケットを送信するためである。   The bit string generation unit 304 selects one transmission source node, for example, in a round robin manner from among the transmission source nodes whose data is stored in the data storage unit 306 (FIG. 10: step S11). Then, the bit string generation unit 304 determines whether or not the counter value of the number of unprocessed packets stored in the data storage unit 306 for the selected transmission source node is greater than or equal to the threshold (step S13). This is because the number of data packets equal to or greater than the threshold is received, aggregated and transmitted as an ACK packet.

選択された送信元ノードについて未処理パケット数のカウンタ値が閾値以上となっていない場合には、処理はステップS11に戻る。一方、選択された送信元ノードについて未処理パケット数のカウンタ値が閾値以上であれば、ビット列生成部304は、前処理を実行する(ステップS15)。前処理については、図11及び図12を用いて説明する。前処理は、本実施の形態では、後に実行される誤検出検証処理の処理効率を向上させるために実行される。   If the counter value of the number of unprocessed packets is not equal to or greater than the threshold for the selected transmission source node, the process returns to step S11. On the other hand, if the counter value of the number of unprocessed packets for the selected transmission source node is greater than or equal to the threshold value, the bit string generation unit 304 performs preprocessing (step S15). The preprocessing will be described with reference to FIGS. In the present embodiment, the preprocessing is executed in order to improve the processing efficiency of a false detection verification process that is executed later.

まず、ビット列生成部304は、データ格納部306に格納されている未処理パケットの識別番号を集合Sに設定する(図11:ステップS31)。そして、ビット列生成部304は、集合Sに含まれる識別番号の範囲に対する集合Sに含まれる識別番号の数の割合を算出する(ステップS33)。集合Sに、識別番号{1,3,5,9,11}が含まれる場合、識別番号の範囲は10(=11−1)であり、集合Sに含まれる識別番号の数は5であるから、割合は50%(=5/10)となる。   First, the bit string generation unit 304 sets the identification numbers of unprocessed packets stored in the data storage unit 306 in the set S (FIG. 11: step S31). Then, the bit string generation unit 304 calculates the ratio of the number of identification numbers included in the set S to the range of identification numbers included in the set S (step S33). If the set S includes the identification numbers {1, 3, 5, 9, 11}, the range of the identification numbers is 10 (= 11-1), and the number of the identification numbers included in the set S is 5. Therefore, the ratio is 50% (= 5/10).

そして、ビット列生成部304は、算出された割合が閾値を超えているか判断する(ステップS35)。閾値は例えば50%以上の所定の数値である。後に実行される誤検出検証処理では、(100%−算出された割合)の数の識別番号について誤検出するか否かを検証するので、集合Sに含まれる識別番号の範囲に含まれる識別番号の過半数が誤検出検証処理の処理対象となるのは非効率だからである。   Then, the bit string generation unit 304 determines whether the calculated ratio exceeds the threshold value (step S35). The threshold value is a predetermined numerical value of 50% or more, for example. In the erroneous detection verification process executed later, whether or not erroneous detection is performed for (100% -calculated ratio) number of identification numbers is verified, so that the identification numbers included in the range of identification numbers included in the set S This is because the majority of these are subject to false detection verification processing.

算出された割合が閾値を超えていない場合には、ビット列生成部304は、集合Sから、識別番号最大値を除外する(ステップS37)。そして処理はステップS33に戻る。   When the calculated ratio does not exceed the threshold value, the bit string generation unit 304 excludes the identification number maximum value from the set S (step S37). Then, the process returns to step S33.

一方、算出された割合が閾値を超えている場合には、ビット列生成部304は、集合Sに含まれる識別番号を、ビット列生成対象の識別番号に設定する(ステップS39)。そして、呼出元の処理に戻る。   On the other hand, when the calculated ratio exceeds the threshold value, the bit string generation unit 304 sets the identification number included in the set S to the identification number of the bit string generation target (step S39). Then, the process returns to the caller process.

この前処理は、例えば図12に示すような処理に変更してもよい。ビット列生成部304は、データ格納部306に格納されている未処理パケットの識別番号を集合に設定する(ステップS41)。そして、ビット列生成部304は、未処理の集合を1つ選択する(ステップS43)。   This pre-processing may be changed to the processing shown in FIG. 12, for example. The bit string generation unit 304 sets the identification number of the unprocessed packet stored in the data storage unit 306 to the set (step S41). Then, the bit string generation unit 304 selects one unprocessed set (step S43).

その後、ビット列生成部304は、選択された集合に含まれる識別番号の範囲に対する、選択された集合に含まれる識別番号の数を算出する(ステップS45)。演算内容はステップS33と同様である。   After that, the bit string generation unit 304 calculates the number of identification numbers included in the selected set with respect to the range of identification numbers included in the selected set (step S45). The calculation contents are the same as in step S33.

そして、ビット列生成部304は、算出された割合が閾値を超えたか判断する(ステップS47)。算出された割合が閾値を超えていない場合には、ビット列生成部304は、選択された集合に含まれる識別番号間の間隔が最大となる部分で、選択された集合を分割する(ステップS49)。そして処理はステップS43に戻る。なお、分割によって生成された集合のうち、あまりに包含される識別番号の数が少ない集合については、処理対象から外すようにしてもよい。   Then, the bit string generation unit 304 determines whether the calculated ratio exceeds the threshold (step S47). When the calculated ratio does not exceed the threshold value, the bit string generation unit 304 divides the selected set at a portion where the interval between the identification numbers included in the selected set is maximized (step S49). . Then, the process returns to step S43. In addition, you may make it remove | exclude from the process object about the set with too few the identification numbers included among the sets produced | generated by the division | segmentation.

一方、算出された割合が閾値を超えている場合には、ビット列生成部304は、選択された集合に含まれる識別番号を、ビット列生成対象に設定する(ステップS51)。そして、ビット列生成部304は、未処理の集合が存在するか判断する(ステップS53)。未処理の集合が存在する場合には、処理はステップS43に戻る。一方、未処理の集合が存在しない場合には、処理は呼出元の処理に戻る。   On the other hand, when the calculated ratio exceeds the threshold, the bit string generation unit 304 sets an identification number included in the selected set as a bit string generation target (step S51). Then, the bit string generation unit 304 determines whether there is an unprocessed set (step S53). If there is an unprocessed set, the process returns to step S43. On the other hand, if there is no unprocessed set, the process returns to the caller process.

本前処理によれば、ビット列生成対象の識別番号の集合が複数存在するので、以下の処理は、集合毎に実行することになる。   According to this pre-processing, there are a plurality of sets of identification numbers to be subjected to bit string generation, and therefore the following processing is executed for each set.

図10の処理の説明に戻って、ビット列生成部304は、任意の識別番号が、ビット列生成対象の集合に包含されているか否かを確認するためのビット列を生成する(ステップS17)。本実施の形態では、ビット列として確率的データ構造、具体的にはブルームフィルタ(Bloom Filter)を採用する。   Returning to the description of the processing in FIG. 10, the bit string generation unit 304 generates a bit string for confirming whether an arbitrary identification number is included in the set of bit string generation targets (step S <b> 17). In the present embodiment, a stochastic data structure, specifically, a Bloom filter is employed as the bit string.

ブルームフィルタは、よく知られているが、図13及び図14を用いて簡単に説明しておく。ブルームフィルタを生成するためには、図13に示すように、k個のハッシュ関数を用意し、識別番号をそれぞれに入力してハッシュ値を取得する。図13の例では、ハッシュ関数1からはハッシュ値「8」が生成され、ハッシュ関数2からはハッシュ値「1」が生成され、ハッシュ関数kからはハッシュ値「11」が生成されたものとする。そうすると、mビット配列において、ハッシュ値の位置のビットを「1」にセットする。図13の例では、「8」ビット目、「1」ビット目、「11」ビット目を「1」にセットする。このようにして生成されたビット列がブルームフィルタである。k個のハッシュ関数は、DTNにおいて共通である。   Bloom filters are well known, but will be briefly described with reference to FIGS. In order to generate a Bloom filter, as shown in FIG. 13, k hash functions are prepared, and an identification number is input to each to obtain a hash value. In the example of FIG. 13, the hash value “8” is generated from the hash function 1, the hash value “1” is generated from the hash function 2, and the hash value “11” is generated from the hash function k. To do. Then, in the m-bit array, the bit at the position of the hash value is set to “1”. In the example of FIG. 13, the “8” bit, the “1” bit, and the “11” bit are set to “1”. The bit string generated in this way is a Bloom filter. The k hash functions are common in DTN.

さらに、図14に示すように、ビット列生成対象の集合に含まれる他の識別番号についても、k個のハッシュ関数にそれぞれ入力してハッシュ値を取得する。図14の例では、ハッシュ関数1からハッシュ値「0」が生成され、ハッシュ関数2からハッシュ値「1」が生成され、ハッシュ関数kからハッシュ値「8」が生成されたものとする。そうすると、図13で生成されたブルームフィルタのmビット配列において、ハッシュ値の位置のビットを「1」にセットする。図14の例では、「0」ビット目、「1」ビット目、「8」ビット目に「1」をセットする。但し、「1」及び「8」ビット目は既に「1」がセットされているので変更はない。このように、複数の識別番号についてのビット操作を、重ねて同じmビット配列に対して実施することになる。   Further, as shown in FIG. 14, other identification numbers included in the set of bit string generation targets are also input to k hash functions, respectively, to obtain hash values. In the example of FIG. 14, it is assumed that the hash value “0” is generated from the hash function 1, the hash value “1” is generated from the hash function 2, and the hash value “8” is generated from the hash function k. Then, the bit of the hash value position is set to “1” in the m-bit array of the Bloom filter generated in FIG. In the example of FIG. 14, “1” is set to the “0” bit, the “1” bit, and the “8” bit. However, since the “1” and “8” bits are already set to “1”, there is no change. In this way, bit operations for a plurality of identification numbers are performed repeatedly on the same m-bit array.

図10の処理の説明に戻って、このようにビット列生成部304により生成されたビット列は検証処理部305に出力されて、検証処理部305は、誤検出検証処理を実行する(ステップS19)。誤検出検証処理については、図15及び図16を用いて説明する。   Returning to the description of the processing in FIG. 10, the bit string generated by the bit string generation unit 304 in this way is output to the verification processing unit 305, and the verification processing unit 305 executes a false detection verification process (step S19). The erroneous detection verification process will be described with reference to FIGS. 15 and 16.

検証処理部305は、ビット列生成に用いられた識別番号の範囲に含まれ且つビット列生成に用いられなかった特定識別番号のうち未処理の識別番号を1つ特定する(図15:ステップS61)。識別番号{1,3,5,9,11}がビット列生成に用いられた場合には、識別番号1乃至11の範囲において{2,4,6,7,8,10}が特定識別番号となる。   The verification processing unit 305 identifies one unprocessed identification number among the specific identification numbers that are included in the range of identification numbers used for bit string generation and not used for bit string generation (FIG. 15: step S61). When the identification number {1, 3, 5, 9, 11} is used for bit string generation, {2, 4, 6, 7, 8, 10} is the specific identification number in the range of identification numbers 1 to 11. Become.

そして、検証処理部305は、ブルームフィルタの誤検出の有無を判定する(ステップS63)。ブルームフィルタは、その性質から誤検出が発生しうることが知られており、この誤検出を許容してしまうと、再送すべきデータパケットが、通信経路上の転送ノード及び送信元ノードにおいて削除されてしまう。そこで、誤検出が発生するか否かをここで検証しておく。   And the verification process part 305 determines the presence or absence of the false detection of a Bloom filter (step S63). Bloom filters are known to cause false detection due to their nature. If this false detection is allowed, data packets to be retransmitted are deleted at the transfer node and the transmission source node on the communication path. End up. Therefore, it is verified here whether or not erroneous detection occurs.

例えば図16に示すように、特定識別番号を、ブルームフィルタ生成時と同じk個のハッシュ関数に入力してハッシュ値を取得する。ハッシュ値が示すビット位置の値が全て「1」であれば、特定識別番号はブルームフィルタ生成時の集合に含まれていたことになるので、誤検出と判断される。図16の例では、ハッシュ関数1のハッシュ値が「3」であり、ハッシュ関数2のハッシュ値が「10」であり、ハッシュ関数kのハッシュ値が「4」であり、これらのビット位置のビット値は、全て「1」となっているので、誤検出と判断される。一方、ハッシュ値が示すビット位置の値が1つでも「0」となっている場合には、誤検出無しと判断される。   For example, as shown in FIG. 16, the specific identification number is input to the same k hash functions as when the Bloom filter is generated, and the hash value is acquired. If the values of the bit positions indicated by the hash values are all “1”, the specific identification number is included in the set at the time of generating the Bloom filter, so it is determined that it is a false detection. In the example of FIG. 16, the hash value of the hash function 1 is “3”, the hash value of the hash function 2 is “10”, the hash value of the hash function k is “4”, Since the bit values are all “1”, it is determined that there is a false detection. On the other hand, if even one bit position value indicated by the hash value is “0”, it is determined that there is no false detection.

ステップS63の結果として誤検出ありとされた場合には(ステップS65:Yesルート)、ビット列生成部304に誤検出ありを出力する(ステップS67)。そして、処理は呼出元の処理に戻る。一方、ステップS63の結果として誤検出無しとされた場合には(ステップS65:Noルート)、検証処理部305は、特定識別番号に未処理の識別番号が存在するか判断する(ステップS69)。未処理の識別番号が存在する場合には、処理はステップS61に戻る。一方、未処理の識別番号が存在しない場合には、生成されたブルームフィルタについて誤検出無しということになるので、検証処理部305は、ビット列生成部304に、誤検出無しを出力する(ステップS71)。そして処理を終了する。   When it is determined that there is an erroneous detection as a result of step S63 (step S65: Yes route), an erroneous detection is output to the bit string generation unit 304 (step S67). Then, the process returns to the caller process. On the other hand, if no false detection is detected as a result of step S63 (step S65: No route), the verification processing unit 305 determines whether an unprocessed identification number exists in the specific identification number (step S69). If there is an unprocessed identification number, the process returns to step S61. On the other hand, if there is no unprocessed identification number, it means that there is no false detection for the generated Bloom filter, so the verification processing unit 305 outputs no false detection to the bit string generation unit 304 (step S71). ). Then, the process ends.

このような処理を実行することで、生成されたビット列、すなわちブルームフィルタをそのまま使用できるか否かが判定される。   By executing such processing, it is determined whether or not the generated bit string, that is, the Bloom filter can be used as it is.

図10の処理の説明に戻って、ビット列生成部304は、検証処理部305からの出力に基づき、誤検出があったか否かを判断する(ステップS21)。誤検出が存在していた場合には、ビット列生成部304は、ビット列生成対象の識別番号の調整を実行する(ステップS29)。   Returning to the description of the processing of FIG. 10, the bit string generation unit 304 determines whether or not there is a false detection based on the output from the verification processing unit 305 (step S <b> 21). If there is a false detection, the bit string generation unit 304 adjusts the identification number of the bit string generation target (step S29).

この識別番号の調整については、様々な方法が可能である。但し、どの識別番号をビット列生成対象から外せば誤検出が無くなるのかは直接的には不明なので、(A)ビット列生成対象の識別番号のうち最大の識別番号を削除する方法、(B)ビット列生成対象の識別番号のうち最小の識別番号と最大の識別番号のうち、除外した場合にビット列生成対象の識別番号の範囲が狭くなる識別番号を削除する方法、(C)ビット列生成対象の識別番号の間隔を算出し、最も広い部分から後ろの識別番号を削除する方法などを採用しうる。   Various methods can be used for adjusting the identification number. However, since it is unclear directly which identification number is removed from the bit string generation target, it is unknown (A) a method of deleting the largest identification number among the identification numbers of the bit string generation target, and (B) bit string generation. A method of deleting an identification number whose range of identification numbers of a bit string generation target is narrowed when excluded from among a minimum identification number and a maximum identification number of target identification numbers; For example, a method of calculating the interval and deleting the rear identification number from the widest portion may be employed.

その後処理はステップS17に戻って再度ビット列を生成し直した上で、誤検出検証処理を実施する。   Thereafter, the process returns to step S17 to generate a bit string again, and then performs a false detection verification process.

一方、誤検出がなかった場合には、ビット列生成部304は、生成したビット列と、ビット列生成対象の識別番号の範囲を規定するデータ(例えば先頭識別番号及び末尾識別番号の組み合わせ。但し、先頭識別番号と末尾識別番号までのオフセット値との組み合わせ)とを含むACKパケットを生成して、送信部302に送信させる(ステップS23)。   On the other hand, if there is no false detection, the bit string generation unit 304 defines the range of the generated bit string and the identification number of the bit string generation target (for example, a combination of a head identification number and a tail identification number. An ACK packet including a combination of a number and an offset value up to the end identification number) is generated and transmitted to the transmission unit 302 (step S23).

例えば図17に示すようなACKパケットのデータ構成例を示す。図17の例では、パケットタイプとして到達確認(ACK)が指定されており、送信元ノードの識別子と、先頭識別番号と、末尾識別番号と、ビット列であるブルームフィルタとが含まれている。   For example, a data configuration example of an ACK packet as shown in FIG. 17 is shown. In the example of FIG. 17, arrival confirmation (ACK) is specified as the packet type, and includes an identifier of a transmission source node, a head identification number, a tail identification number, and a Bloom filter that is a bit string.

そして、ビット列生成部304は、処理終了が指示された等の理由で処理終了するか判断する(ステップS25)。処理終了ではない場合には、ビット列生成部304は、処理に係る送信元ノードについてデータ格納部306において、未処理パケット数のカウンタ値を、ビット列生成に用いた識別子の個数分だけ減分し、ビット列生成対象の識別番号を削除する(ステップS27)。そして処理はステップS11に戻る。   Then, the bit string generation unit 304 determines whether or not to end the process due to an instruction to end the process (step S25). If the processing is not finished, the bit string generation unit 304 decrements the counter value of the number of unprocessed packets by the number of identifiers used for bit string generation in the data storage unit 306 for the transmission source node for processing, The identification number of the bit string generation target is deleted (step S27). Then, the process returns to step S11.

以上のような処理を実行することで、識別番号の誤検出無しを保証した上で多数のデータパケットのACKパケットを集約したACKパケットを1つ生成して送信できるようになる。すなわち、通信効率が向上する。   By executing the processing as described above, it is possible to generate and transmit one ACK packet in which ACK packets of a large number of data packets are aggregated while guaranteeing that there is no erroneous detection of the identification number. That is, communication efficiency is improved.

次に、転送ノード及び送信元ノードにおいてACKパケットを受信した際の処理について図18乃至図20を用いて説明する。なお、送信元ノード及び転送ノードにおいては、図18に示すようなデータを、データ格納部に格納しているものとする。図18の例では、データパケットのデータだけではなく、未処理の識別番号群を、送信元ノード毎(送信元ノードについては自ノード分のみ)に保持しているものとする。なお、ここでは、転送ノード200を一例に説明するが、送信元ノード100についてもデータ削除処理部106が同様の処理を実行することになる。   Next, processing when an ACK packet is received at the forwarding node and the transmission source node will be described with reference to FIGS. In the transmission source node and the forwarding node, it is assumed that data as shown in FIG. 18 is stored in the data storage unit. In the example of FIG. 18, it is assumed that not only the data of the data packet but also an unprocessed identification number group is held for each transmission source node (for the transmission source node only for the own node). Here, the forwarding node 200 will be described as an example, but the data deletion processing unit 106 executes the same processing for the transmission source node 100 as well.

まず、転送ノード200のデータ削除処理部205は、受信部203からACKパケットを受信するまで待機する(図19:ステップS81)。ACKパケットを受信すると、データ削除処理部205は、ACKパケットからデータの送信元ノードの識別子、先頭及び末尾識別番号、そしてビット列を抽出する(ステップS83)。   First, the data deletion processing unit 205 of the forwarding node 200 stands by until an ACK packet is received from the receiving unit 203 (FIG. 19: Step S81). When receiving the ACK packet, the data deletion processing unit 205 extracts the identifier of the data transmission source node, the head and tail identification numbers, and the bit string from the ACK packet (step S83).

また、データ削除処理部205は、抽出された送信元ノードの識別子についてデータ格納部206に格納されている未処理パケットの識別番号を抽出する(ステップS85)。図18に示すようなデータを読み出す。   Further, the data deletion processing unit 205 extracts the identification number of the unprocessed packet stored in the data storage unit 206 for the extracted identifier of the transmission source node (step S85). Data as shown in FIG. 18 is read.

その後、データ削除処理部205は、抽出された識別番号のうち未処理の識別番号を1つ選択する(ステップS87)。そして、データ削除処理部205は、ACKパケットに含まれるビット列に基づき、選択された識別番号の包含判定を実行する(ステップS89)。ブルームフィルタの場合、k個のハッシュ関数のハッシュ値が示すビット位置の値が全て「1」であれば、ブルームフィルタ生成時の識別番号集合に包含されていたことが確認できる。従って、本ステップでも、k個のハッシュ関数に、選択された識別番号を入力してハッシュ値を取得し、当該ハッシュ値が示すビット位置の値を確認し、全てのビット値が「1」であれば、包含と判定する。そして処理は端子Aを介して図20の処理に移行する。   Thereafter, the data deletion processing unit 205 selects one unprocessed identification number from the extracted identification numbers (step S87). Then, the data deletion processing unit 205 performs inclusion determination of the selected identification number based on the bit string included in the ACK packet (step S89). In the case of the Bloom filter, if all the bit position values indicated by the hash values of the k hash functions are “1”, it can be confirmed that they are included in the set of identification numbers at the time of generating the Bloom filter. Therefore, also in this step, the selected identification number is input to the k hash functions to obtain the hash value, the value of the bit position indicated by the hash value is confirmed, and all the bit values are “1”. If there is, it is determined as inclusion. Then, the processing shifts to the processing in FIG.

図20の処理の説明に移行して、データ削除処理部205は、選択された識別番号は包含されていると判定されたか判断する(ステップS91)。包含されていないと判定された場合には、処理はステップS95に移行する。一方、包含されていると判断された場合には、データ削除処理部205は、データ格納部206において、選択された識別番号のパケットのデータを削除する(ステップS93)。到達確認ができた分だけキャッシュの容量を有効活用できるようになる。   Shifting to the description of the processing in FIG. 20, the data deletion processing unit 205 determines whether or not it is determined that the selected identification number is included (step S91). If it is determined that it is not included, the process proceeds to step S95. On the other hand, if it is determined that the data is included, the data deletion processing unit 205 deletes the data of the packet having the selected identification number in the data storage unit 206 (step S93). The cache capacity can be effectively utilized as much as the arrival confirmation is completed.

そして、データ削除処理部205は、未処理の識別番号が存在するか判断する(ステップS95)。未処理の識別番号が存在する場合には、端子Bを介してステップS87に戻る。一方、未処理の識別番号が存在しない場合には、処理終了が明示的に指示されるまで、上で述べた処理を繰り返す(ステップS87)。すなわち、処理終了でない場合には端子Cを介してステップS81に戻る。   Then, the data deletion processing unit 205 determines whether there is an unprocessed identification number (step S95). If there is an unprocessed identification number, the process returns to step S87 via the terminal B. On the other hand, if there is no unprocessed identification number, the above-described processing is repeated until the processing end is explicitly instructed (step S87). That is, if the process is not finished, the process returns to step S81 via the terminal C.

以上のような処理を実施することで、宛先ノードにデータパケットが到着したことを確認した上で、保持しているデータパケットを破棄できるようになる。これによってキャッシュが有効活用できるようになる。   By performing the processing as described above, it is possible to discard the held data packet after confirming that the data packet has arrived at the destination node. As a result, the cache can be used effectively.

上で述べた実施の形態では、ビット列としてブルームフィルタを用いる例を示した。ブルームフィルタを用いることで、多数のデータパケットを集約できるが、ブルームフィルタの性質から誤検出防止の処理を行うことになる。例えば、ACKパケットに含めることができるビット列のビット長に相当するデータパケットを集約すればよい場合には、ブルームフィルタを用いずとも良い。   In the embodiment described above, an example in which a Bloom filter is used as a bit string has been described. By using the Bloom filter, a large number of data packets can be aggregated. However, due to the nature of the Bloom filter, erroneous detection prevention processing is performed. For example, when data packets corresponding to the bit length of a bit string that can be included in an ACK packet are aggregated, the Bloom filter may not be used.

例えば、ビット長がmビットであれば、最大mデータパケットを集約できる。例えば、先頭識別番号「11」で末尾識別番号「23」であって、ビット列生成対象の識別番号が{11,13,15,17,19,21,23}であれば、各識別番号について先頭識別番号からのオフセット位置に相当するビット位置を「1」にセットした「1010101010101」というビット列を採用するようにしても良い。すなわち、ビット列生成処理は、ビット列生成対象の識別番号から、先頭識別番号からのオフセット位置に相当するビット位置のビット値によってビット列生成対象の集合に包含されているか否かを確認するための所定長のビット列への写像となる。なお、ブルームフィルタを用いる場合においても、ビット列生成対象の識別番号からブルームフィルタに相当するビット列への写像とも言える。   For example, if the bit length is m bits, a maximum of m data packets can be aggregated. For example, if the head identification number is “11”, the tail identification number is “23”, and the identification number of the bit string generation target is {11, 13, 15, 17, 19, 21, 23}, the head for each identification number. A bit string “1010101010101” in which the bit position corresponding to the offset position from the identification number is set to “1” may be adopted. That is, the bit string generation process is performed with a predetermined length for confirming whether or not the bit string generation target identification number is included in the bit string generation target set by the bit value of the bit position corresponding to the offset position from the head identification number. To a bit string of. Even when the Bloom filter is used, it can be said that the bit string generation target identification number is mapped to the bit string corresponding to the Bloom filter.

この場合には、誤検出検証処理及びビット列生成対象の識別番号を調整する処理については行わずに済む。また、転送ノード及び送信元ノードについても、ビット列におけるビット位置が「1」か否かだけで包含判定ができるので、処理が簡易になる。   In this case, the erroneous detection verification process and the process of adjusting the identification number of the bit string generation target need not be performed. In addition, regarding the forwarding node and the transmission source node, the inclusion determination can be performed only by checking whether the bit position in the bit string is “1”, so that the processing becomes simple.

以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、機能ブロック図は、プログラムモジュール構成とは一致しない場合もある。データ構造例も一例にすぎず、同様の内容を保持する他のデータ構造を採用しても良い。   Although the embodiment of the present technology has been described above, the present technology is not limited to this. For example, the functional block diagram may not match the program module configuration. The data structure example is merely an example, and other data structures that hold the same contents may be adopted.

さらに、処理フローについても処理結果が変わらない限りにおいて処理ステップの順番を入れ替えたり、処理を並列実行するようにしても良い。   Furthermore, as for the processing flow, as long as the processing result does not change, the order of the processing steps may be changed, or the processing may be executed in parallel.

なお、上で述べた送信元ノード100、転送ノード200、宛先ノード300は、コンピュータ装置であって、図21に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。   The transmission source node 100, forwarding node 200, and destination node 300 described above are computer devices, and as shown in FIG. 21, a memory 2501, a CPU (Central Processing Unit) 2503, and a hard disk drive (HDD: HDD). Hard Disk Drive) 2505, a display control unit 2507 connected to the display device 2509, a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to the network are connected via a bus 2519. Yes. An operating system (OS) and an application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. The CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the application program, and performs a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505. In an embodiment of the present technology, an application program for performing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed from the drive device 2513 to the HDD 2505. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above and programs such as the OS and application programs. .

以上述べた本実施の形態をまとめると、以下のようになる。   The above-described embodiment can be summarized as follows.

本実施の形態の第1の態様に係る到着確認メッセージ送信方法は、(A)ある送信元ノードから受信されたデータの識別子の集合を、識別子が上記集合に包含されているか否かを確認するためのビット列に写像する処理と、(B)上記集合に含まれる識別子の範囲を規定するデータと上記ビット列とを含む到着確認メッセージを、ある送信元ノード宛に送信する処理とを含む。   In the arrival confirmation message transmission method according to the first aspect of the present embodiment, (A) a set of identifiers of data received from a certain transmission source node is confirmed whether or not the identifiers are included in the set. And (B) a process of transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to a certain source node.

このようにすれば到着確認メッセージを集約することができ、通信効率を上げることができるようになる。なお、メッセージは、どの階層レベルのメッセージ又はパケットであってもよい。   In this way, arrival confirmation messages can be aggregated, and communication efficiency can be improved. The message may be a message or packet at any hierarchical level.

さらに、上で述べたビット列は、確率的データ構造であってもよい。そして、上で述べた写像する処理が、(a1)ビット列に基づき、上記識別子の範囲に含まれるが上記集合には含まれない識別子が、上記集合に含まれていることになっているか否かを検証する処理と、(a2)上記識別子の範囲に含まれるが上記集合には含まれない識別子が、上記集合に含まれていることになっている場合には、上記集合に含まれる識別子を削減してから上記ビット列を生成し直す処理とを含むようにしても良い。より多くのデータメッセージ又はデータパケットの集約を行うことができるようになる。   Further, the bit string described above may be a stochastic data structure. Whether or not the above-described mapping process includes (a1) an identifier included in the identifier range but not included in the set based on the bit string. (A2) If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is And processing for regenerating the bit string after the reduction. More data messages or data packets can be aggregated.

また、上で述べた写像する処理が、(a3)上記検証する処理と上記生成し直す処理とを、上記検証する処理において上記識別子の範囲に含まれるが上記集合には含まれない識別子が上記集合に含まれていると判断されることが無くなるまで繰り返す処理をさらに含むようにしても良い。   In addition, the mapping process described above includes (a3) the verification process and the re-generation process, and identifiers that are included in the identifier range but not included in the set in the verification process. You may make it further include the process repeated until it is determined that it is not included in the set.

また、上で述べた写像する処理は、上記集合に含まれる識別子の範囲に含まれる識別子の数に対する上記集合に含まれる識別子の数の比率が、一定値以上となるように上記集合に含まれる識別子を特定する処理を含むようにしても良い。例えば、集約度合いを一定以上にすることで通信効率を上げ、また上記検証する処理を効率化するためである。   The mapping process described above is included in the set such that the ratio of the number of identifiers included in the set to the number of identifiers included in the range of identifiers included in the set is equal to or greater than a certain value. You may make it include the process which specifies an identifier. For example, this is for increasing the communication efficiency by setting the degree of aggregation to a certain level or more and improving the efficiency of the verification process.

さらに、上で述べた特定する処理が、上記識別子の範囲に含まれる識別子のうち最後の識別子を削除する処理、又は上記識別子の範囲に含まれる識別子の間隔のうち最大の間隔が生じている部分で上記集合を分割する処理を含むようにしてもよい。   Further, the above-described specifying process is a process in which the last identifier among the identifiers included in the identifier range is deleted, or a portion where the maximum interval occurs among the identifier intervals included in the identifier range. The process of dividing the set may be included.

さらに、上で述べた生成し直す処理が、上記識別子の範囲に含まれる識別子のうち最後の識別子を削除する処理、上記識別子の範囲に含まれる識別子のうち先頭の識別子を削除した場合における新たな集合に含まれる識別子の第1の範囲と上記識別子の範囲に含まれる識別子のうち最後の識別子を削除した場合における新たな集合に含まれる識別子の第2の範囲とのうち狭い範囲を生じさせる識別子を削除する処理、又は、上記識別子の範囲に含まれる識別子の間隔のうち最も広い間隔以降の識別子を削除する処理を含むようにしても良い。   Further, the re-generation process described above is a process for deleting the last identifier among the identifiers included in the identifier range, and a new one when the first identifier is deleted among the identifiers included in the identifier range. An identifier that generates a narrow range between the first range of identifiers included in the set and the second range of identifiers included in the new set when the last identifier is deleted among the identifiers included in the range of the identifiers Or a process of deleting identifiers after the widest interval among identifier intervals included in the identifier range.

本技術の第2の態様に係るデータ削除方法は、(C)ある送信元ノードから受信されたデータの識別子の集合の範囲を規定するデータと、識別子が上記集合に包含されているか否かを確認するためのビット列とを含む到着確認メッセージを受信する処理と、(D)ある送信元ノードについてのデータ及び当該データの識別子とを格納するデータ格納部から、到着確認メッセージに含まれる上記データから特定される範囲に含まれる識別子を抽出する処理と、(E)上記ビット列に基づき、抽出された識別子が、上記集合に包含されているか否かを判断する処理と、(F)上記集合に包含されていると判断された識別子及び当該識別子についてのデータを、データ格納部から削除する処理とを含む。   In the data deletion method according to the second aspect of the present technology, (C) data defining a set range of identifiers of data received from a certain transmission source node, and whether or not the identifiers are included in the set. From the data included in the arrival confirmation message, the process of receiving the arrival confirmation message including the bit string for confirmation, and (D) the data storage unit that stores the data about the source node and the identifier of the data. A process of extracting an identifier included in a specified range; (E) a process of determining whether the extracted identifier is included in the set based on the bit string; and (F) an included in the set. And the process of deleting the data about the identifier determined to have been deleted from the data storage unit.

このようにすればデータ格納部の容量を有効活用することができるようになる。   In this way, the capacity of the data storage unit can be used effectively.

なお、上記処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。   A program for causing a computer to perform the above-described processing can be created. The program is, for example, a computer-readable storage medium or storage device such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. Stored in The intermediate processing result is temporarily stored in a storage device such as a main memory.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータに実行させるためのプログラム。
(Appendix 1)
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
A program for causing a computer to execute processing for transmitting an arrival confirmation message including data defining a range of identifiers included in the set and the bit string to the certain transmission source node.

(付記2)
前記ビット列が、確率的データ構造であり、
前記写像する処理が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理と、
を含む付記1記載のプログラム。
(Appendix 2)
The bit sequence is a stochastic data structure;
The process of mapping is
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Process to fix,
The program according to appendix 1, including

(付記3)
前記写像する処理が、
前記検証する処理と前記生成し直す処理とを、前記検証する処理において前記識別子の範囲に含まれるが前記集合には含まれない識別子が前記集合に含まれていると判断されることが無くなるまで繰り返す処理
をさらに含む付記2記載のプログラム。
(Appendix 3)
The process of mapping is
The verification process and the re-generation process until it is determined that an identifier included in the identifier range but not included in the set is included in the set in the verification process. The program according to appendix 2, further including a repetition process.

(付記4)
前記写像する処理は、
前記集合に含まれる識別子の範囲に含まれる識別子の数に対する前記集合に含まれる識別子の数の比率が、一定値以上となるように前記集合に含まれる識別子を特定する処理
を含む付記1乃至3のいずれか1つ記載のプログラム。
(Appendix 4)
The process of mapping is
Additional remarks 1 to 3 including a process of identifying an identifier included in the set such that a ratio of the number of identifiers included in the set to a number of identifiers included in a range of identifiers included in the set is a predetermined value or more. The program according to any one of the above.

(付記5)
前記特定する処理が、
前記識別子の範囲に含まれる識別子のうち最後の識別子を削除する処理、又は前記識別子の範囲に含まれる識別子の間隔のうち最大の間隔が生じている部分で前記集合を分割する処理
を含む付記4記載のプログラム。
(Appendix 5)
The identifying process is
Supplementary note 4 including a process of deleting the last identifier among the identifiers included in the identifier range, or a process of dividing the set at a portion where the maximum interval occurs among the intervals of the identifiers included in the identifier range The listed program.

(付記6)
前記生成し直す処理が、
前記識別子の範囲に含まれる識別子のうち最後の識別子を削除する処理、前記識別子の範囲に含まれる識別子のうち先頭の識別子を削除した場合における新たな集合に含まれる識別子の第1の範囲と前記識別子の範囲に含まれる識別子のうち最後の識別子を削除した場合における新たな集合に含まれる識別子の第2の範囲とのうち狭い範囲を生じさせる識別子を削除する処理、又は、前記識別子の範囲に含まれる識別子の間隔のうち最も広い間隔以降の識別子を削除する処理
を含む付記2記載のプログラム。
(Appendix 6)
The regenerating process is
A process of deleting the last identifier among the identifiers included in the identifier range, a first range of identifiers included in a new set when the first identifier is deleted among the identifiers included in the identifier range; and A process of deleting an identifier that causes a narrow range from the second range of identifiers included in the new set when the last identifier is deleted among the identifiers included in the range of identifiers, or in the range of the identifiers The program according to appendix 2, including a process of deleting identifiers after the widest interval among the included identifier intervals.

(付記7)
ある送信元ノードから受信されたデータの識別子の集合の範囲を規定するデータと、識別子が前記集合に包含されているか否かを確認するためのビット列とを含む到着確認メッセージを受信し、
前記ある送信元ノードについてのデータ及び当該データの識別子とを格納するデータ格納部から、前記到着確認メッセージに含まれる前記データから特定される範囲に含まれる識別子を抽出し、
前記ビット列に基づき、抽出された前記識別子が、前記集合に包含されているか否かを判断し、
前記集合に包含されていると判断された識別子及び当該識別子についてのデータを、前記データ格納部から削除する
処理を、コンピュータに実行させるためのプログラム。
(Appendix 7)
Receiving an arrival confirmation message including data defining a range of a set of identifiers of data received from a source node, and a bit string for confirming whether or not the identifier is included in the set;
From the data storage unit that stores the data about the certain source node and the identifier of the data, the identifier included in the range specified from the data included in the arrival confirmation message,
Based on the bit string, determine whether the extracted identifier is included in the set;
A program for causing a computer to execute processing for deleting an identifier determined to be included in the set and data about the identifier from the data storage unit.

(付記8)
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータが実行する到着確認メッセージ送信方法。
(Appendix 8)
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
An arrival confirmation message transmission method in which a computer executes a process of transmitting an arrival confirmation message including data defining a range of identifiers included in the set and the bit string to the certain source node.

(付記9)
ある送信元ノードから受信されたデータの識別子の集合の範囲を規定するデータと、識別子が前記集合に包含されているか否かを確認するためのビット列とを含む到着確認メッセージを受信し、
前記ある送信元ノードについてのデータ及び当該データの識別子とを格納するデータ格納部から、前記到着確認メッセージに含まれる前記データから特定される範囲に含まれる識別子を抽出し、
前記ビット列に基づき、抽出された前記識別子が、前記集合に包含されているか否かを判断し、
前記集合に包含されていると判断された識別子及び当該識別子についてのデータを、前記データ格納部から削除する
処理を、コンピュータが実行するデータ削除方法。
(Appendix 9)
Receiving an arrival confirmation message including data defining a range of a set of identifiers of data received from a source node, and a bit string for confirming whether or not the identifier is included in the set;
From the data storage unit that stores the data about the certain source node and the identifier of the data, the identifier included in the range specified from the data included in the arrival confirmation message,
Based on the bit string, determine whether the extracted identifier is included in the set;
A data deletion method in which a computer executes a process of deleting an identifier determined to be included in the set and data about the identifier from the data storage unit.

(付記10)
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像するビット列生成部と、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する送信部と、
を有する情報処理装置。
(Appendix 10)
A bit string generation unit that maps a set of identifiers of data received from a source node to a bit string for confirming whether or not the identifiers are included in the set;
A transmission unit for transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node;
An information processing apparatus.

(付記11)
ある送信元ノードから受信されたデータの識別子の集合の範囲を規定するデータと、識別子が前記集合に包含されているか否かを確認するためのビット列とを含む到着確認メッセージを受信する受信部と、
前記ある送信元ノードについてのデータ及び当該データの識別子とを格納するデータ格納部から、前記到着確認メッセージに含まれる前記データから特定される範囲に含まれる識別子を抽出し、前記ビット列に基づき、抽出された前記識別子が、前記集合に包含されているか否かを判断し、前記集合に包含されていると判断された識別子及び当該識別子についてのデータを、前記データ格納部から削除する削除部と、
を有する情報処理装置。
(Appendix 11)
A receiver for receiving an arrival confirmation message including data defining a range of a set of identifiers of data received from a source node and a bit string for confirming whether or not the identifier is included in the set; ,
An identifier included in a range specified from the data included in the arrival confirmation message is extracted from a data storage unit that stores data about the certain source node and an identifier of the data, and is extracted based on the bit string Determining whether or not the identifier is included in the set, and deleting the identifier determined to be included in the set and the data about the identifier from the data storage unit;
An information processing apparatus.

100 送信元ノード
101 通信インタフェース
102 送信部
103 受信部
104 データ生成部
105 ID生成部
106 データ削除処理部
107 データ格納部
200 転送ノード
201 通信インタフェース
202 送信部
203 受信部
204 転送処理部
205 データ削除処理部
206 データ格納部
300 宛先ノード
301 通信インタフェース
302 送信部
303 受信部
304 ビット列生成部
305 検証処理部
306 データ格納部
100 transmission source node 101 communication interface 102 transmission unit 103 reception unit 104 data generation unit 105 ID generation unit 106 data deletion processing unit 107 data storage unit 200 transfer node 201 communication interface 202 transmission unit 203 reception unit 204 transfer processing unit 205 data deletion process Unit 206 data storage unit 300 destination node 301 communication interface 302 transmission unit 303 reception unit 304 bit string generation unit 305 verification processing unit 306 data storage unit

Claims (11)

ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータに実行させるためのプログラムであって、
前記ビット列が、確率的データ構造であり、
前記写像する処理が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理と、
を含むプログラム。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
A program for causing a computer to execute a process of transmitting an arrival confirmation message including data specifying a range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Process to fix,
Including programs.
前記写像する処理が、
前記検証する処理と前記生成し直す処理とを、前記検証する処理において前記識別子の範囲に含まれるが前記集合には含まれない識別子が前記集合に含まれていると判断されることが無くなるまで繰り返す処理
をさらに含む請求項1記載のプログラム。
The process of mapping is
The verification process and the re-generation process until it is determined that an identifier included in the identifier range but not included in the set is included in the set in the verification process. The program according to claim 1, further comprising: repetitive processing.
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータに実行させるためのプログラムであって、
前記ビット列が、確率的データ構造であり、
前記写像する処理は、
前記集合に含まれる識別子の範囲に含まれる識別子の数に対する前記集合に含まれる識別子の数の比率が、一定値以上となるように前記集合に含まれる識別子を特定する処理と、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と
を含むプログラム。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
A program for causing a computer to execute a process of transmitting an arrival confirmation message including data specifying a range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process of specifying an identifier included in the set such that a ratio of the number of identifiers included in the set to a number of identifiers included in a range of identifiers included in the set is a certain value or more ;
A program for verifying whether or not an identifier included in the identifier range but not included in the set is to be included in the set based on the bit string .
前記特定する処理が、
前記集合に含まれる識別子のうち最後の識別子を削除する処理、又は前記集合に含まれる識別子の間隔のうち最大の間隔が生じている部分で前記集合を分割する処理
を含む請求項3記載のプログラム。
The identifying process is
Process of removing the last identifier of the identifier included in the aggregate, or claim 3, wherein the program including a process of dividing the set in a portion where the maximum interval occurs within interval identifier included in the set .
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータに実行させるためのプログラムであって、
前記ビット列が、確率的データ構造であり、
前記写像する処理が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理と、
を含み、
前記生成し直す処理が、
前記集合に含まれる識別子のうち最後の識別子を削除する処理、前記集合に含まれる識別子のうち先頭の識別子を削除した場合における新たな集合に含まれる識別子の第1の範囲と前記集合に含まれる識別子のうち最後の識別子を削除した場合における新たな集合に含まれる識別子の第2の範囲とのうち狭い範囲を生じさせる識別子を削除する処理、又は、前記集合に含まれる識別子の間隔のうち最も広い間隔以降の識別子を削除する処理
を含むプログラム。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
A program for causing a computer to execute a process of transmitting an arrival confirmation message including data specifying a range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Process to fix,
Including
The regenerating process is
Included in the last process of deleting the identifier, the set with the first range of identifiers contained in the new set in the case where removing the leading identifier of the identifier included in the set of identifiers included in the set A process of deleting an identifier that causes a narrow range from the second range of identifiers included in the new set when the last identifier is deleted, or the most of the intervals of identifiers included in the set A program that includes processing to delete identifiers after a wide interval.
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータが実行する到着確認メッセージ送信方法であって、
前記ビット列が、確率的データ構造であり、
前記写像する処理が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理と、
を含む到着確認メッセージ送信方法。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
An arrival confirmation message transmitting method in which a computer executes a process of transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Process to fix,
Including an arrival confirmation message sending method.
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータが実行する到着確認メッセージ送信方法であって、
前記ビット列が、確率的データ構造であり、
前記写像する処理は、
前記集合に含まれる識別子の範囲に含まれる識別子の数に対する前記集合に含まれる識別子の数の比率が、一定値以上となるように前記集合に含まれる識別子を特定する処理と、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と
を含む到着確認メッセージ送信方法。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
An arrival confirmation message transmitting method in which a computer executes a process of transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process of specifying an identifier included in the set such that a ratio of the number of identifiers included in the set to a number of identifiers included in a range of identifiers included in the set is a certain value or more ;
An arrival confirmation message transmission method comprising: verifying whether an identifier included in the identifier range but not included in the set is to be included in the set based on the bit string .
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像し、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する
処理を、コンピュータが実行する到着確認メッセージ送信方法であって、
前記ビット列が、確率的データ構造であり、
前記写像する処理が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理と、
を含み、
前記生成し直す処理が、
前記集合に含まれる識別子のうち最後の識別子を削除する処理、前記集合に含まれる識別子のうち先頭の識別子を削除した場合における新たな集合に含まれる識別子の第1の範囲と前記集合に含まれる識別子のうち最後の識別子を削除した場合における新たな集合に含まれる識別子の第2の範囲とのうち狭い範囲を生じさせる識別子を削除する処理、又は、前記集合に含まれる識別子の間隔のうち最も広い間隔以降の識別子を削除する処理
を含む到着確認メッセージ送信方法。
A set of identifiers of data received from a source node is mapped to a bit string for confirming whether the identifier is included in the set;
An arrival confirmation message transmitting method in which a computer executes a process of transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node,
The bit sequence is a stochastic data structure;
The process of mapping is
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Process to fix,
Including
The regenerating process is
Included at the end of process of deleting the identifiers, said it sets a first range of identifiers contained in the new set in the case where removing the leading identifier of the identifier included in the set of identifiers included in the set A process of deleting an identifier that causes a narrow range from the second range of identifiers included in the new set when the last identifier is deleted, or the most of the intervals of identifiers included in the set An arrival confirmation message transmission method that includes processing to delete identifiers after a wide interval.
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像するビット列生成部と、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する送信部と、
を有する情報処理装置であって、
前記ビット列が、確率的データ構造であり、
前記ビット列生成部が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証し、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す
情報処理装置。
A bit string generation unit that maps a set of identifiers of data received from a source node to a bit string for confirming whether or not the identifiers are included in the set;
A transmission unit for transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node;
An information processing apparatus having
The bit sequence is a stochastic data structure;
The bit string generation unit
Based on the bit string, verify whether or not an identifier that is included in the identifier range but not included in the set is to be included in the set;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Fix Information processing device.
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像するビット列生成部と、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する送信部と、
を有する情報処理装置であって、
前記ビット列が、確率的データ構造であり、
前記ビット列生成部は、
前記集合に含まれる識別子の範囲に含まれる識別子の数に対する前記集合に含まれる識別子の数の比率が、一定値以上となるように前記集合に含まれる識別子を特定し、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する
情報処理装置。
A bit string generation unit that maps a set of identifiers of data received from a source node to a bit string for confirming whether or not the identifiers are included in the set;
A transmission unit for transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node;
An information processing apparatus having
The bit sequence is a stochastic data structure;
The bit string generation unit
Identifying an identifier included in the set such that a ratio of the number of identifiers included in the set to a number of identifiers included in a range of identifiers included in the set is equal to or greater than a certain value ;
An information processing apparatus that verifies whether an identifier that is included in the identifier range but not included in the set is included in the set based on the bit string .
ある送信元ノードから受信されたデータの識別子の集合を、識別子が前記集合に包含されているか否かを確認するためのビット列に写像するビット列生成部と、
前記集合に含まれる識別子の範囲を規定するデータと前記ビット列とを含む到着確認メッセージを、前記ある送信元ノード宛に送信する送信部と、
を有する情報処理装置であって、
前記ビット列が、確率的データ構造であり、
前記ビット列生成部が、
前記ビット列に基づき、前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっているか否かを検証する処理と、
前記識別子の範囲に含まれるが前記集合には含まれない識別子が、前記集合に含まれていることになっている場合には、前記集合に含まれる識別子を削減してから前記ビット列を生成し直す処理とを実行し、
前記ビット列生成部は、前記生成し直す処理において、
前記集合に含まれる識別子のうち最後の識別子を削除する処理、前記集合に含まれる識別子のうち先頭の識別子を削除した場合における新たな集合に含まれる識別子の第1の範囲と前記集合に含まれる識別子のうち最後の識別子を削除した場合における新たな集合に含まれる識別子の第2の範囲とのうち狭い範囲を生じさせる識別子を削除する処理、又は、前記集合に含まれる識別子の間隔のうち最も広い間隔以降の識別子を削除する処理
を実行する情報処理装置。
A bit string generation unit that maps a set of identifiers of data received from a source node to a bit string for confirming whether or not the identifiers are included in the set;
A transmission unit for transmitting an arrival confirmation message including data defining the range of identifiers included in the set and the bit string to the certain source node;
An information processing apparatus having
The bit sequence is a stochastic data structure;
The bit string generation unit
A process for verifying whether an identifier that is included in the identifier range but not included in the set is to be included in the set based on the bit string;
If an identifier included in the identifier range but not included in the set is to be included in the set, the identifier included in the set is reduced and the bit string is generated. Perform the correction process,
In the re-generation process, the bit string generation unit,
Included in the last process of deleting the identifier, the set with the first range of identifiers contained in the new set in the case where removing the leading identifier of the identifier included in the set of identifiers included in the set A process of deleting an identifier that causes a narrow range from the second range of identifiers included in the new set when the last identifier is deleted, or the most of the intervals of identifiers included in the set An information processing apparatus that executes processing for deleting identifiers after a wide interval.
JP2012203427A 2012-09-14 2012-09-14 Information processing method and information processing apparatus for arrival confirmation message Expired - Fee Related JP6135078B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012203427A JP6135078B2 (en) 2012-09-14 2012-09-14 Information processing method and information processing apparatus for arrival confirmation message

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012203427A JP6135078B2 (en) 2012-09-14 2012-09-14 Information processing method and information processing apparatus for arrival confirmation message

Publications (2)

Publication Number Publication Date
JP2014060533A JP2014060533A (en) 2014-04-03
JP6135078B2 true JP6135078B2 (en) 2017-05-31

Family

ID=50616640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012203427A Expired - Fee Related JP6135078B2 (en) 2012-09-14 2012-09-14 Information processing method and information processing apparatus for arrival confirmation message

Country Status (1)

Country Link
JP (1) JP6135078B2 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444718A (en) * 1993-11-30 1995-08-22 At&T Corp. Retransmission protocol for wireless communications
JPH11177536A (en) * 1997-12-08 1999-07-02 Mitsubishi Electric Corp Error control method for wireless data link layer
CA2697764A1 (en) * 2007-09-12 2009-03-19 Steve Chen Generating and communicating source identification information to enable reliable communications
WO2010022767A1 (en) * 2008-08-26 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Packet forwarding in a network
JP2010213239A (en) * 2009-03-12 2010-09-24 Nec Corp Packet loss frequency estimation system, packet loss frequency estimation method, and program

Also Published As

Publication number Publication date
JP2014060533A (en) 2014-04-03

Similar Documents

Publication Publication Date Title
US7885197B2 (en) System and method for measuring per node packet loss in a wireless network
US20130258843A1 (en) Network system and apparatis
JP5534481B2 (en) Communication quality monitoring system, communication quality monitoring method, and storage medium
CN104521192A (en) Techniques for flooding optimization for link state protocols in a network topology
WO2011016882A1 (en) Method and system to enable a hybrid routing protocol
JP5163398B2 (en) Packet identification program, packet identification method, packet identification apparatus, and control program
CN108632940B (en) Reliable Multipath Routing Algorithm for Photoelectric Sensor Wireless MESH Network
JP5056438B2 (en) Packet analysis method
CN109525376B (en) Fast retransmission method and device and terminal equipment
CN117176649A (en) Message transmission methods and devices, electronic equipment, computer-readable media
CN108881009A (en) Based on the delay constraint method for routing and device for facing sky Information Network
CN102752799B (en) Routing method, device and system for delay tolerant network
JP2023515955A (en) Route update method and device
JP5720340B2 (en) Control server, communication system, control method and program
KR20150131327A (en) Network transmission adjustment based on application-provided transmission metadata
CN104869062B (en) A kind of data packet forwarding method and equipment
CN111629416A (en) Message transmission method, system, terminal device and computer readable storage medium
JP6135078B2 (en) Information processing method and information processing apparatus for arrival confirmation message
CN103117955B (en) Method for message transmission and device, system
JP5287373B2 (en) Communication device and communication processing method
CN108322402B (en) Message processing method, device and system
CN115379501B (en) SPN service transmission method and device and network node
US20180123942A1 (en) Route control apparatus and route control method
KR101895887B1 (en) System and method for delivering message based on contact ratio in opportunistic network, recording medium for performing the method
CN118301070B (en) An efficient cross-layer message forwarding circuit and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161017

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: 20170328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170410

R150 Certificate of patent or registration of utility model

Ref document number: 6135078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees