Relay method and relay apparatus

A relay method includes receiving, by a first relay apparatus, a packet that includes a search formula for the target data from a terminal apparatus; acquiring the search formula from the packet; decomposing the search formula into a plurality of keywords; acquiring, for each of the plurality of keywords, fit data existing in the database from among the data of request target by searching out data corresponding to the keyword from the database of the first relay apparatus; requesting a second relay apparatus for missing data that does not exist in the database from among the data of request target; acquiring, by the second relay apparatus, the missing data; receiving, by the first relay apparatus, the missing data; combining the fit data and the missing data with each other to generate the data of request target; and transmitting the generated data of request target to the terminal apparatus.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-038027, filed on Feb. 29, 2016, the entire contents of which are incorporated herein by reference.

FIELD

The embodiment discussed herein is related to a relay method and a relay apparatus.

BACKGROUND

Different from a network technology in which communication is performed based on an internet protocol (IP) address or the like, as a network technology in which communication is performed based on the name of a content, information centric networking (ICN) has been and is being investigated and developed (for example, refer to Japanese Laid-open Patent Publication No. 2015-136098 and George Xylomenos et al., “A Survey of Information-Centric Networking Research,” COMMUNICATIONS SURVEYS AND TUTORIALS, VOL. 16, No. 2, 2014, pp. 1024-1049). As an investigation project for ICN, content centric networking (CCN) (for example, Japanese Laid-open Patent Publication No. 2009-277234), named data network (NDN) or the like is available.

For example, in the NDN, a request for content data from a client apparatus may be defined as “interest message.” In the interest message, a name of a content to be requested (hereinafter, abbreviated to “content name”) may be included. Each relay node in a network may relay an interest message to a server that provides the pertinent content in accordance with a forward information base (FIB) in which a relay destination corresponding to the content name is registered.

The server may generate a response defined as “data message” from content data corresponding to the content name in the interest message and transmit the response to the network. Each relay node in the network may relay the data message to the client apparatus along the route in the opposite direction to the relaying direction of the interest message.

The relay node may cache content data in the data message to be relayed into a database called content store (CS). If the content name in the interest message fully coincides with a content name of the data cached in the CS (hereinafter, abbreviated to “cache data”), the relay node may generate a data message including the cache data and transmit the data message to the client apparatus. Therefore, the relay node may not relay an interest message for requesting content data having a content name same as that of the cached data to the server.

In the NDN, a technology called keyword based content retrieval (KBCR) may be prescribed in which content data searched out from one or more servers is acquired based on a keyword. According to the KBCR, a search formula for a keyword is included into an interest message in place of the content name. This makes it possible to collect a plurality of content data that coincide with the keyword from a server or servers using a single interest message. Therefore, the convenience may be improved.

As described above, the relay node may transmit cache data to the client apparatus only when the content name in an interest message fully coincides with the content name of the cache data. Therefore, even if a large number of content data searched out using a keyword are cached in the CS in accordance with the KBCR, it may be difficult for the relay node to utilize the cache data unless the content names fully coincide with each other.

For example, it is assumed that a plurality of content data collected using a keyword “curry and rice” are cached in the CS. In this case, even if the relay node receives an interest message including a search formula of keywords “curry and rice” & (this signifies “and”) “potato,” since the content name is not included in the interest message, the relay node may fail to utilize the cache data relating to the keyword “curry and rice.”

Therefore, in the network, the interest message is relayed from the relay node to the server and a plurality of data messages corresponding to the interest message are relayed from the server to the client apparatus. Accordingly, the use rate of the transmission bandwidth may increase. Such a problem as just described may occur in a network system in which search for and acquisition of content data using a keyword are performed such as the KBCR. Taking the foregoing into consideration, it is desirable to be capable of reducing the use rate of the transmission bandwidth.

SUMMARY

According to an aspect of the embodiment, a relay method executed by a system that includes a first relay apparatus and a second relay apparatus each of which stores data of request target transmitted from a server and requested by a terminal apparatus into a database and relays the data of request target to the terminal apparatus, the relay method includes receiving, by the first relay apparatus, a packet that includes a search formula for the target data from the terminal apparatus; acquiring the search formula from the packet; decomposing the search formula into a plurality of keywords; acquiring, for each of the plurality of keywords, fit data existing in the database from among the data of request target by searching out data corresponding to the keyword from the database of the first relay apparatus; requesting the second relay apparatus for missing data that does not exist in the database from among the data of request target; acquiring, by the second relay apparatus, the missing data requested from the first relay apparatus; receiving, by the first relay apparatus, the missing data from the second relay apparatus; combining the fit data and the missing data with each other to generate the data of request target; and transmitting the generated data of request target to the terminal apparatus.

DESCRIPTION OF EMBODIMENT

FIG. 1is a block diagram depicting an example of a network. The network includes a plurality of terminals20and21such as computers, a plurality of routers1each of which is an example of a relay apparatus, and a server3that provide a given content to the terminals20and21.

The network operates based on the NDN described above. Each of the plurality of routers1is an example of a relay system. The plurality of routers1relay an interest message and a data message between the terminals20and21and the server3. The interest message is a packet for requesting the server3for content data. The interest message includes a content name or a search formula for a content as indicated by reference symbol G0.

In the present example, “/printer001/manual/” is used as the content name. If “/printer001/manual/” is designated in the interest message, a content having the pertinent content name is acquired from the server3.

In the present example, “/keyword/?keyword=printer&keyword=repair” is used as the search formula. Here, “keyword” at the top is an identifier indicating that the search formula is that of an interest message. “&” indicates “and” of a search condition. If “/keyword/?keyword=printer&keyword=repair,” is designated in the interest message, contents relating to both of the two keywords “printer” and “repair” are searched out and acquired from the server3.

The data message is a packet of a response to an interest message. The data message includes a content name or a search formula designated by the pertinent interest message and content data of the content name or the search formula.

In the network of the present example, the router1that operates based on the NDN is provided in each of nodes #1to #3between the terminal20and the server3. The different terminal21is coupled with the router1of the node #2.

If the terminal20transmits an interest message, the routers1of the respective nodes #1to #3relay the interest message to the server3. The server3generates a data message including content data corresponding to the content name or the search formula of the interest message and transmits the data message in response to the interest message. The routers1of the respective nodes #1to #3relay the interest message to the server3. Each of the terminals20and21is an example of a requesting apparatus that requests for content data. The content data is an example of data of a request target.

A CS, as an example of a database of content data, is provided in the router1. The router1caches content data included in a data message to be relayed into the CS in response to an operation setting. As an example, the router1of the node #2caches the content data requested by the terminal20into the CS and relays the content data to the terminal20as indicated by reference symbol G1. Also the routers1of the other nodes #1and #3may cache the content data.

In the CS, the content data is stored in an associated relationship with a content name or a keyword of a search formula. The data stored in the CS is abbreviated to “cache data.” When the interest message is received from the terminal20or21, the router1may utilize cache data that fully coincides with the content name or cache data that fits with the keyword of the search formula to generate a data message.

For example, when the terminal20transmits an interest message, if content data that fully coincides with the content name is stored in the CS of the router1of the node #2, the router1generates a data message including the pertinent content data and transmits the data message to the terminal20. Therefore, the router1of the node #2may not relay the interest message to the server3. Therefore, the use rate of the transmission bandwidth of the network may be reduced.

Also when a search formula is designated in an interest message, the router1searches the CS for cache data that fits with the keyword of the search formula and relays the interest message that requests for content data other than searched out content data to the router1of a different node. Consequently, the router1acquires the content data requested by the interest message and generates and transmits a data message. Since the router1effectively utilizes the cache data in the CS in this manner, the hit rate of the cache in the CS in the entire relay system may be improved. Accordingly, the transmission bandwidth of the network may be saved and the use rate may be reduced. Details of a configuration and an operation of the router1are described below.

FIG. 2is a block diagram depicting an example of the router1. The router1includes a central processing unit (CPU)10, a read only memory (ROM)11, a random access memory (RAM)12, a hard disk drive (HDD)13and a plurality of communication ports14. The CPU10is coupled to the ROM11, RAM12, HDD13and plurality of communication ports14through a bus19such that inputting and outputting of a signal may be performed between them.

The ROM11stores a program for driving the CPU10. The RAM12functions as a working memory of the CPU10. Each of the communication ports14is, for example, a physical layer (PHY) chip. The communication port14transmits and receives a corresponding packet to and from the terminal20or21, the server3or the different router1. A host address of a communication destination such as an IP address is not included in the packet. A content name and a search formula are included in the packet as described above.

In the NDN, a transmission destination of the packet is designated by a FACE number. For example, FACE#0to FACE#N (N is a positive integer) are allocated to individual ones of the communication ports14. The packet is transferred to a destination corresponding to the FACE number.

If the CPU10reads in a program from the ROM11, a relay processing unit100, a data generation unit101, a cache processing unit102, an interest generation unit103, a search formula analysis unit104and a search processing unit105are formed as functions. In the HDD13, an FIB130, a PIT131and a CS132are stored. A nonvolatile memory such as an erasable programmable ROM (EPROM) or the like may be used in place of the HDD13.

InFIG. 3, an example of the FIB130, PIT131and CS132is illustrated. The FIB130is a table indicating a transfer destination of an interest message. In the FIB130, “Prefix” and “Next FACE” are registered in an associated relationship with each other.

“Prefix” is a content name or a keyword designated by the interest message. “Next FACE” is one or more FACE numbers indicating a transfer destination or destinations of the interest message. In the case of the content name, a name of a hierarchical configuration is registered in “Prefix.” The interest message is transferred to a communication port14of “Next FACE” corresponding to “Prefix” in which the number of characters that coincide with those of the content name is the greatest.

In the following description, an item registered in the FIB130is abbreviated to “FIB entry.” The FIB entry is generated by communication between the respective routers1. When an interest message is received, FIB entries are searched in order to determine a transfer destination of the interest message.

The PIT131is a table indicating a transmission source of an interest message, for example, a transfer destination of a data message. In the PIT131, a content name or a keyword and “Requested FACE” are registered in an associated relationship with each other. “Requested FACE” is one or more FACE numbers indicating a transmission source of the interest message, for example, a requester for the content data. The data message is transferred or transmitted to a communication port14of “Requested FACE” corresponding to the content name or the keyword of the search formula of the content data.

In the following description, an item registered in the PIT131is abbreviated to “PIT entry.” The PIT entry is generated upon reception of an Interest message and is searched in order to determine, upon transfer or transmission of the data message, a destination of the data message. One PIT entry may include a plurality of FACE numbers if they are common in the content name or the keyword.

In the CS132, content data acquired from a data message is stored as cache data in an associated relationship with a content name or a search formula of the content data. The content data in the CS132is used for generation of a data message when the content name of the content data fully coincides with the content name designated in the interest message.

When the search formula of the content data in the CS132fits with at least part of the keywords of the search formula designated in the interest message, at least part of the content data is used for generation of the data message. For example, where the search formula corresponding to the content data is “PC & mobile,” when “PC” is designated in the interest message, the content data is used in a data message.

Referring toFIG. 2again, the relay processing unit100manages the FIB130and the PIT131. The relay processing unit100refers to the FIB130and the PIT131to perform a relay process of a packet through a communication port or ports14.

For example, the relay processing unit100receives a data message from a different router1. Thereafter, the relay processing unit100searches the PIT entries and transfers the data message from a pertinent communication port14. At this time, the relay processing unit100instructs the cache processing unit102to cache the content data.

The cache processing unit102caches the content data in the data message of a relay target as cache data corresponding to the content name and the search formula into the CS132in accordance with the instruction of the relay processing unit100. The cache data is used for generation of a data message by the data generation unit101.

The relay processing unit100is an example of a first reception unit and receives an interest message from the terminal20or21. At this time, the relay processing unit100searches the PIT entries. If a pertinent PIT entry does not exist, the relay processing unit100generates a PIT entry in accordance with the content name or the keyword of the search formula of the interest message.

Then, the relay processing unit100instructs the search processing unit105to search the cache data based on the content name or the keyword of the search formula designated in the interest message. If pertinent cache data does not exist in the CS132, the relay processing unit100searches the FIB entries and transfers the interest message from the pertinent communication port14.

The search processing unit105searches the cache data in the CS132for the cache data based on the content name or the keyword of the search formula designated in the interest message in accordance with the instruction of the relay processing unit100. For example, the search processing unit105searches for the cache data that fully coincides with the content name or the search formula. The search processing unit105notifies the relay processing unit100of a result of the search.

If cache data that fully coincides with the content name or the search formula designated in the interest message exists, the relay processing unit100generates a data message including the pertinent cache data. The relay processing unit100searches out the PIT entry and transmits the generated data message from the pertinent communication port14.

When pertinent cache data does not exist in the CS132as a result of the search, if the interest message has a search formula designated therein, the search processing unit105instructs the search formula analysis unit104to analyze the search formula. The search formula analysis unit104is an example of a decomposition processing unit. The search formula analysis unit104acquires the search formula from the interest message and decomposes the search formula into keywords. The search formula analysis unit104notifies the search processing unit105of the keywords obtained by the decomposition.

The search processing unit105extracts from the CS132cache data corresponding to the search formula that includes the keywords conveyed from the search formula analysis unit104. Consequently, the search processing unit105searches the CS132for cache data fitting with the keywords as fit data. Here, the fit data is at least part of content data requested by the interest message. The fit data is used for generation of a data message by the data generation unit101. The search processing unit105notifies the relay processing unit100of a result of the search.

The search processing unit105has a FACE number allocated thereto similarly to the communication ports14. In the example ofFIG. 2, the search processing unit105has FACE#M (M is a positive integer) allocated thereto. When the relay processing unit100outputs an interest message to the search processing unit105, it manages the output destination as FACE#M.

If fit data is searched out by the search processing unit105, the relay processing unit100instructs the interest generation unit103to generate an interest message for requesting for data other than the fit data from among the requested content data.

The interest generation unit103is an example of a request processing unit. The interest generation unit103requests a different router1for data other than the fit data from among the requested content data. For example, the interest generation unit103generates a search formula for searching for data missing in the CS132(hereinafter, abbreviated to “missing data”) from among the requested content data. Then, the interest generation unit103generates an interest message in which the search formula is designated. The interest generation unit103outputs the generated interest message to the relay processing unit100. Consequently, the interest generation unit103transmits the generated search formula to a different router1.

The relay processing unit100transmits the interest message generated by the interest generation unit103to a different router1through a communication port14corresponding to a result of the search of the FIB130. At this time, the relay processing unit100adds a FACE number pertinent to the transmitted interest message to the PIT entry.

At this time, the relay processing unit100receives missing data requested by the interest generation unit103from the different router1. The relay processing unit100is an example of a second reception unit. For example, the relay processing unit100receives a data message in response to the interest message generated by the interest generation unit103. Then, the relay processing unit100outputs the content data, for example, the missing data, to the data generation unit101.

The data generation unit101is an example of a generation unit. The data generation unit101combines the missing data received by the relay processing unit100and the fit data with each other to generate content data requested by the interest message. For example, the data generation unit101combines the fit data searched out from the CS132by the search processing unit105and the missing data received from the different router1with each other to generate content data in accordance with the search formula designated by the interest message from the terminal20or21, and determines the content data as a data message. At this time, the relay processing unit100transmits the data message including the content data generated by the data generation unit101to the terminal20or21. The relay processing unit100is an example of a transmission unit.

InFIG. 4, an example of a relationship between a set CD of cache data and a set RD of requested content data is illustrated.FIG. 4exemplifies the relationship in a case in which the router1receives an interest message in which a search formula is designated and fit data that fits with part of keywords of the search formula exists in the CS132.

An overlapping range Sa of the set CD of cache data and the set RD of requested content data indicates a set of fit data searched out by the search processing unit105. The search processing unit105searches the cache data in the CS132for each of the keywords obtained by the decomposition of the search formula. Consequently, the set Sa of the fit data is obtained as a subset of the set RD of the requested content data.

The fit data is part of the requested content data existing in the CS132. Therefore, the router1does not request the different router1for fit data.

A subset Sb of the set RD of the requested content data from which the set Sa of the fit data is removed indicates a set of the missing data that does not exist in the CS132. The missing data is part of the requested content data and does not exist in the CS132. Therefore, the router1requests a different router1for missing data.

At this time, the interest generation unit103requests for only part of the requested content data instead of for all of the requested content data. Therefore, the traffic amount of content data to be received from the different router1may be reduced, by transfer of the interest message, from that when all of the requested content data are received. Accordingly, the transmission bandwidth in the network used by the content data may be reduced.

As described above, the interest generation unit103generates a search formula for searching for missing data and transmits the search formula to a different router1through the relay processing unit100.

The interest message in which the search formula is designated is not transmitted to a communication port14of a FACE number pertinent to all of the requested content data. The interest message is transmitted to the communication ports14of FACE numbers pertinent only to part of the requested content data. Therefore, the traffic amount of the interest message in the network may be reduced further when all of the content data are requested, for example, when the interest message received from the terminal20or21is transferred. Accordingly, the transmission bandwidth in the network used by the interest message may be reduced.

The router1receives a data message including the missing data from the different router1. Then, the router1combines the missing data with the fit data existing in the CS132to generate requested content data. For example, the relay processing unit100receives the missing data from the different router1. Then, the data generation unit101combines the missing data and the fit data with each other to generate requested content data.

In short, the data generation unit101combines, from within the set RD of the requested content data, the subset Sa corresponding to the fit data existing in the CS132and the subset Sb corresponding to the missing data that do not exist in the CS132with each other to generate a set RD of the requested content data. The relay processing unit100transmits a data message in which the generated requested content data are included to the terminal20or21.

Therefore, the terminal20or21may receive the content data requested using the interest message.

InFIG. 5, an example of operation of the router1is illustrated. In the example depicted inFIG. 5, operation when the router1of the node #2inFIG. 1receives an interest message in which a search formula “A or X” is designated from the terminal20is illustrated. “A” and “X” are keywords for the search. “or” signifies “or” in the search.

In the present example, it is assumed that, although cache data corresponding to the search formula “A or X” does not exist in the CS132of the router1of the node #2, cache data corresponding to the search formula “A” exists. Further, it is assumed that cache data corresponding to the search formula “X” exists in the CS132of the router1of the node #3. In the following, each process is successively described in accordance with directions indicated by arrow marks.

The relay processing unit100receives an interest message in which the search formula “A or X” is designated from the terminal20. The relay processing unit100decides, as a result (not depicted) of the search of the search processing unit105, that cache data that fully coincides with the search formula does not exist in the CS132. Therefore, the relay processing unit100outputs an interest message to the search formula analysis unit104. The search formula analysis unit104acquires the search formula “A or X” from the interest message and decomposes the search formula into the keywords “A” and “X.” The search formula analysis unit104outputs the keywords “A” and “X” obtained by the decomposition to the search processing unit105.

The search processing unit105searches the CS132for fit data that fit with the keywords “A” and “X.” In the CS132of the present example, content data corresponding to the keyword “A” (pertinent to the subset Sa ofFIG. 4) exists. However, content data corresponding to the keyword “X” (pertinent to the subset Sb ofFIG. 4) does not exist. Therefore, the search processing unit105notifies the relay processing unit100that, as a result of the search, although fit data of the keyword “A” exists, fit data of the keyword “X” does not exist.

The interest generation unit103generates a search formula “X” for searching for content data corresponding to the keyword “X” as missing data in accordance with an instruction of the relay processing unit100by which the notification is received. Then, the interest generation unit103generates an interest message including the search formula “X.” The interest generation unit103outputs the generated interest message to the relay processing unit100. The relay processing unit100transmits the interest message to the router1of the node #3.

The relay processing unit100receives a data message including the content data searched out in accordance with the search formula “X” from the router1of the node #3. Then, the relay processing unit100outputs the received message to each of the data generation unit101and the interest generation unit103. The cache processing unit102acquires the content data searched out in accordance with the search formula “X” from the data message and registers the content data into the CS132. Therefore, in the CS132, the content data corresponding to the search formula “X” newly becomes available.

The data generation unit101acquires the content data searched out in accordance with the search formula “X” from the data message. Then, the data generation unit101combines the acquired content data with the content data corresponding to the search formula “A” in the CS132to generate content data corresponding to the search formula “A or X” (the data pertinent to the set RD ofFIG. 4). The data generation unit101generates a data message including the generated content data and outputs the data message to the relay processing unit100.

The relay processing unit100transmits the data message generated by the data generation unit101to the terminal20. Consequently, the terminal20acquires the content data requested through the interest message.

InFIG. 6, operation of the relay system according to the present example is illustrated. InFIG. 6, configurations in common with those ofFIG. 1are denoted by same reference symbols, and overlapping description of them is omitted herein. The router1of the node #2is an example of a first relay apparatus. The router1of the node #3is an example of a second relay apparatus.

The terminal20transmits an interest message in which the search formula “A or X” is designated. In the router1of the node #2, content data corresponding to the search formula “A” exists in the CS132. Therefore, the router1of the node #2generates an interest message in which the search formula “X” for searching for missing data is designated and transmits the interest message to the router1of the node #3. For example, the interest generation unit103of the router1of the node #2requests the router1of the node #3for content data corresponding to the search formula “X.”

In the router1of the node #3, content data corresponding to the search formula “X” exists in the CS132. Therefore, as indicated by reference symbol G3, the router1of the node #3reads out the content data from the CS132and transmits a data message in which the content data is included to the router1of the node #2. For example, the router1of the node #3searches out content data requested from the interest generation unit103of the router1of the node #2from within the CS132and transmits the searched out content data to the router1of the node #2.

In the router1of the node #2, the relay processing unit100receives the data message from the router1of the node #3. The cache processing unit102registers the content data corresponding to the search formula “X” into the CS132as indicated by reference character G2. The data generation unit101reads out the content data corresponding to the search formula “A” from the CS132and combines the read out content data with the content data corresponding to the search formula “X.” Consequently, content data corresponding to the search formula “A or X” is generated.

The router1of the node #2transmits a data message including the content data corresponding to the search formula “A or X” to the terminal20. Consequently, the terminal20acquires the content data requested through the interest message.

The example described above is directed to a case in which the search formula “A or X” is designated in the interest message. However, also where a search formula “A & X” is designated, the router1operates in accordance with the substance described with reference toFIG. 4.

InFIG. 7, examples of a relationship between a set CD of cache data and a set RD of requested content data where “&” is included in the search formula are illustrated. In the following, examples 1 to 4 are described successively.

The example 1 illustrates a case in which cache data corresponds to the search formula “A” and requested content data corresponds to the search formula “A & X.” Such a case as just described may be considered a case in which a search formula “curry and potato” is designated in the interest message and cache data (content data) corresponding to a search formula “curry” exists in the CS132.

In this case, the set CD of the cache data includes the set RD of the requested content data. Therefore, the interest generation unit103may not request a different router1for missing data through an interest message. The search processing unit105extracts the cache data corresponding to the search formula “A & X” from within the CS132by keyword arithmetic operation. Then, the data generation unit101generates a data message corresponding to the search formula “A & X” from the extracted cache data.

The example 2 illustrates a case in which the cache data corresponds to a search formula “A & X & Y” and the requested content data corresponds to a search formula “A & X.” Such a case as just described may be considered a case in which a search formula “curry & potato” is designated in the interest message and cache data (content data) corresponding to a search formula “curry & potato & carrot” exists in the CS132.

In this case, the set CD of the cache data is a subset of the set RD of the requested content data. Therefore, the interest generation unit103requests a different router1for missing data (referred to a portion indicated by slanting lines) through an interest message. The search formula for missing data is represented by the expression (1) given below. The search processing unit105extracts cache data corresponding to the search formula “A & X” as fit data from within the CS132by keyword arithmetic operation. Then, the data generation unit101generates a data message corresponding to the search formula “A & X” from the cache data corresponding to the search formula “A & X” and the missing data received from the different router1.
A&X&Y(1)

The example 3 illustrates a case in which the cache data corresponds to a search formula “A & Y” and the requested content data corresponds to another search formula “A & X.” Such a case as just described may be considered a case in which a search formula “curry and potato” is designated in the interest message and cache data (content data) corresponding to a search formula “curry and carrot” exists in the CS132.

In this case, the subset of the set CD of the cache data is a subset of the set RD of the requested content data. Therefore, the interest generation unit103requests a different router1for the missing data (refer to a portion indicated by slanting lines) through an interest message. The search formula for the missing data is represented by the expression (1) given above. The search processing unit105extracts the cache data corresponding to the search formula “A & X & Y” as fit data from within the CS132by keyword arithmetic operation. Then, the data generation unit101generates a data message corresponding to the search formula “A & X” from the cache data corresponding to the search formula “A & X & Y” and the missing data received from the different router1.

The example 4 illustrates a case in which the cache data corresponds to a search formula “Y” and the requested content data corresponds to another search formula “A & X.” Such a case as just described may be a case in which a search formula “curry and potato” is designated in the interest message and cache data (content data) corresponding to a search formula “beef bowl” exists in the CS132.

In this case, the set CD of the cache data and the set RD of the requested content data do not have an overlapping portion. Therefore, the relay processing unit100relays the interest message in which the search formula “A & X” is designated as it is to the different router1. If the relay processing unit100receives a data message responding to the interest message, the relay processing unit100relays the data message to the terminal20or21.

In this manner, the search processing unit105searches for fit data by extracting cache data corresponding to a search formula in which a keyword is included from within the CS132. Therefore, the search processing unit105may easily search out fit data that matches with the keyword from the CS132.

FIG. 8is a flow chart illustrating an example of a process for an interest message. The relay processing unit100receives an interest message (St1). Then, the relay processing unit100acquires a content name or a search formula from the interest message (St2).

Then, the relay processing unit100refers to the PIT131to decide whether or not a PIT entry pertinent to the acquired content mane or search formula exists (St3). If a pertinent PIT entry exists (Yes at St3), the relay processing unit100updates the PIT entry by adding a FACE number in accordance with the interest message to the PIT entry (St11), and ends the processing.

If a pertinent PIT entry does not exist (No at St3), the relay processing unit100generates a PIT entry including the FACE number in accordance with the interest message (St4). Then, the search processing unit105searches the CS132for cache data that fully coincides with the content name or search formula (St5).

The relay processing unit100decides from a result of the search whether or not pertinent cache data exists (St6). If pertinent cache data exists (Yes at St6), the relay processing unit100generates a data message including the cache data and transmits the data message to the terminal20or21(St12). Then, the relay processing unit100deletes the pertinent PIT entry (St13).

When pertinent cache data does not exist (No at St6), the relay processing unit100decides whether or not the designation of the interest message is a search formula (St7). If the designation of the interest message is a content name (No at St7), the relay processing unit100searches for an FIB entry which has the greatest number of characters coincident with those of the content name (St8).

Then, the relay processing unit100transmits the interest message from a communication port14corresponding to the FACE number of the searched out FIB entry (St9). Consequently, the interest message is relayed to the different router1.

Where the designation of the interest message is a search formula (Yes at St7), the search formula analysis unit104decompose the search formula into keywords (St14). Then, the search processing unit105searches the CS132for cache data that fits with the keywords, for example, for fit data (St15).

Then, the relay processing unit100decides, from a result of the search, whether or not pertinent cache data exists (St16). If pertinent cache data does not exist (No at St16), the relay processing unit100executes processes at the subsequent steps beginning with St8described hereinabove.

If pertinent cache data exists (Yes at St16), the data generation unit101generates a search formula for missing data (St17). The data generation unit101generates an interest message in which the search formula is designated and transmits the interest message through the relay processing unit100(St18). The processes for the interest message are executed in this manner.

FIG. 9is a flow chart illustrating an example of a process for a data message. The relay processing unit100receives a data message (St31). Then, the relay processing unit100acquires a content name or a search formula from the data message (St32).

Then, the relay processing unit100decides whether or not a PIT entry pertinent to the acquired content name or search formula exists (St33). If a pertinent PIT entry does not exist (No at St33), the relay processing unit100ends the processing.

If a pertinent PIT entry exists (Yes at St33), the cache processing unit102caches content data in an associated relationship with the content name into the CS132(St34). Then, the relay processing unit100decides whether or not the designation of the interest message is a search formula (St35).

If the designation of the interest message is a content name (No at St35), the relay processing unit100transmits the received data message from a communication port14that corresponds to the FACE number of the pertinent PIT entry (St36). Consequently, the data message is relayed to the terminal20or21. Thereafter, the relay processing unit100deletes the pertinent PIT entry (St37), and ends the processing.

If the designation of the interest message is a search formula (Yes at St35), the cache processing unit102registers the search formula in an associated relationship with the content data cached into the CS132by the process at St34described hereinabove (St38). Then, the relay processing unit100decides whether or not the cached content data is missing data requested by the interest message transmitted by the process at St18ofFIG. 8(St39). At this time, the relay processing unit100performs the decision process by referring to the search formula for a PIT entry and comparing the search formula with the search formula included in the data message.

If the cached content data is not the missing data (No at St39), the relay processing unit100ends the processing. If the cached content data is the missing data (Yes at St39), the data generation unit101combines the pertinent cache data and the missing data with each other to generate content data requested from the terminal20or21(St40).

Then, the data generation unit101generates a data message that includes the content data and transmits the data message through the relay processing unit100(St41). Then, the relay processing unit100deletes the pertinent PIT entry (St42), and ends the processing.

So far as described above, the router1of the embodiment caches content data of a request target of the terminal20or21into the CS132and relays the content data to the terminal20or21. The router1includes the relay processing unit100, the search formula analysis unit104, the search processing unit105, the interest generation unit103and the data generation unit101.

The relay processing unit100receives an interest message in which a search formula for content data of a request target from the terminal20or21is included. The search formula analysis unit104acquires the search formula from the interest message and decomposes the search formula into keywords. The search processing unit105searches for fit data that fits with the keywords from the CS132. The interest generation unit103requests a different router1for missing data other than the fit data from among the content data of the request target.

The relay processing unit100receives the missing data requested by the interest generation unit103from the different router1. The data generation unit101combines the missing data received by the relay processing unit100and the fit data with each other to generate content data of the request target. The relay processing unit100transmits the content data of the request target generated by the data generation unit101to the terminal20or21.

According to the configuration described above, the interest generation unit103requests for only part of the content data instead of for all of the content data of the request target of the terminal20or21. Therefore, the traffic amount of content data to be received from the different router1may be reduced by transfer of the interest message, from that when all of the content data of the request target are received. Accordingly, the transmission bandwidth in the network used by the content data may be reduced.

The relay system of the embodiment includes a plurality of routers1. Each router1caches content data of a request target of the terminal20or21into the CS132and relays the content data to the terminal20or21. The router1includes the relay processing unit100, the search formula analysis unit104, the search processing unit105, the interest generation unit103and the data generation unit101.

The relay processing unit100receives an interest message in which a search formula for content data of a request target from the terminal20or21is included. The search formula analysis unit104acquires the search formula from the interest message and decomposes the search formula into keywords. The search processing unit105searches for fit data that fits with the keywords from the CS132. The interest generation unit103requests a different router1for missing data other than the fit data from among the content data of the request target.

The relay processing unit100receives the missing data requested by the interest generation unit103from the different router1. The data generation unit101combines the missing data received by the relay processing unit100and the fit data with each other to generate content data of the request target. The relay processing unit100transmits the content data of the request target generated by the data generation unit101to the terminal20or21.

The different router1searches the CS132for the missing data requested from the interest generation unit103and transmits the searched out missing data to the router1that includes the interest generation unit103.

The relay system of the embodiment includes the router1described above, and therefore, exhibits working effects similar to those described hereinabove.