Relay apparatus and relay method

There is provided a relay apparatus including a memory, and a processor coupled to the memory and the processor configured to receive a first packet including an identifier for indicating a content, determine whether or not the content indicated by the identifier included in the first packet is saved in a cache, transmit a second packet including a source address of the first packet and the identifier when it is determined that the content is not saved in the cache, and transmit a third packet including an address of the relay apparatus and the identifier when it is determined that the content is saved in the cache.

CROSS-REFERENCE TO RELATED APPLICATION

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

FIELD

The embodiments discussed herein are related to a relay apparatus and a relay method.

BACKGROUND

In recent years, for example, a network technology called content centric networking (CCN) has been known for distributing contents such as videos and audios. CCN is also called, for example, information centric networking (ICN) or named data networking (NDN). CCN allows a user to acquire desired contents by using a contents name indicating the desired contents as a key without being conscious of the location of a server in which the desired contents are stored.

A user terminal transfers an Interest packet including the content name indicating the desired contents to the server via a relay node in a network. The relay node relays the Interest packet by Hop-by-Hop communication. Then, when the Interest packet is received, the server acquires the contents corresponding to the contents name in the Interest packet from a storage destination. The server transfers the contents to each relay node on a path through which the Interest packet is transferred. When the contents are received, each relay node stores the received contents in a cache. Then, the relay node transfers the contents stored in the cache to the user terminal.

Related technologies are disclosed in, for example, Japanese Laid-Open Patent Publication No. 2013-179482 and Japanese Laid-Open Patent Publication No. 2015-136098.

SUMMARY

According to an aspect of the invention, a relay apparatus includes a memory, and a processor coupled to the memory and the processor configured to receive a first packet including an identifier for indicating a content, determine whether or not the content indicated by the identifier included in the first packet is saved in a cache, transmit a second packet including a source address of the first packet and the identifier when it is determined that the content is not saved in the cache, and transmit a third packet including an address of the relay apparatus and the identifier when it is determined that the content is saved in the cache.

DESCRIPTION OF EMBODIMENTS

Each relay node in a CCN system may set whether or not a cache is required, that is, whether or not to save received contents in a cache, based on a predetermined algorithm. That is, in a relay node on a path through which an Interest packet is transferred, received contents are saved in a cache when the cache is required, but the received contents are not saved in a cache when the cache is not required. Therefore, it is unnecessary to transfer the received contents to a relay node in which the cache is not required among a plurality of relay nodes on the path through which the Interest packet is transferred.

However, since the received contents are also transferred to the relay node in which the cache is not required, the time required for transferring the received contents becomes long, and the transfer rate of the received contents is lowered. Therefore, an optimal routing may be performed to increase the transfer rate of the received contents.

Embodiments of a relay apparatus and a relay method capable of increasing a transfer rate will be described in detail below with reference to accompanying drawings. However, the disclosed technology is not limited by these embodiments. Further, these embodiments may be appropriately combined with each other within a scope that does not cause inconsistency.

First Embodiment

FIG. 1is an explanatory view illustrating an example of a CCN system1according to a first embodiment. The CCN system1illustrated inFIG. 1includes a user terminal2, a server3, a plurality of relay nodes4, and a plurality of IP routers5. The user terminal2is a communication terminal used by a user, for example, a personal computer, a smartphone or the like. The server3is a server that stores contents. The relay nodes4are CCN-compliant relay nodes that connect between the user terminal2and the server3. For convenience of explanation, the relay nodes4illustrated inFIG. 1are assumed as six relay nodes4of #1to #6. The IP routers5are IP-compliant routers that connect between the user terminal2and the server3. For convenience of explanation, the IP routers5illustrated inFIG. 1are assumed as three IP routers5of #a to #c. Not only the relay nodes4but also the IP routers5are in a state of being mixed between the user terminal2and the server3. The relay nodes4relay signals by Hop-by-Hop communication.

FIG. 2is an explanatory view illustrating an example of a relay node4. As illustrated inFIG. 2, the relay node4includes a network interface (NWIF)11, a memory12, a control processing unit (CPU)13, and a bus14. The NWIF11is, for example, an IF responsible for communication with the user terminal2, the server3, the relay nodes4, the IP routers5and so on. The memory12is an area storing various programs and information related to the relay nodes4. The CPU13controls the entire relay nodes4. The bus14is a bus that mutually communicates data between the NWIF11, the memory12, and the CPU13. The relay node is an example of a relay apparatus.

In addition, the functions executed by the CPU13in the memory12include a CCN layer function13A, a transport layer function13B, and an IP layer function13C. The CCN layer function13A is a function executed with the protocol of the CCN layer. The transport layer function13B is a function executed with the protocol of the transport layer. The IP layer function13C is a function executed with the protocol of the IP layer.

The CCN layer function13A includes an Interest control unit21, a cache control unit22, a contents transfer unit23, and a path setting unit24. The Interest control unit21generates an Interest packet for requesting the server3to provide contents. The cache control unit22includes a determination unit22A. The determination unit22A determines whether or not to cache received contents, based on a predetermined algorithm. The “predetermined algorithm” used herein refers to an algorithm for estimating popular contents from the number of times of contents request to determine whether or not a cache is required. Therefore, the cache control unit22may decide whether to cache the contents corresponding to a contents name in the Interest packet, based on the contents name. When it is determined by the determination unit22A that a cache is required, the cache control unit22saves the received contents in a cache31. The contents transfer unit23transfers the received contents. The path setting unit24sets a short cut path based on a pending information table (PIT) and a conversion table to be described later.

The transport layer function13B includes a transmission control protocol (TCP) control unit25and a user datagram protocol (UDP) control unit26. When the quality of service (QoS) of a section path set by the path setting unit24has no bandwidth guarantee, the TCP control unit25establishes, as the protocol of the transport layer, for example, a TCP connection that executes congestion control, retransmission control, etc., on the section path. When the QoS of the section path set by the path setting unit24has any bandwidth guarantee, the UDP control unit establishes, as the protocol of the transport layer, for example, a UDP connection with small processing load, on the section path without executing congestion control, retransmission control, etc. The IP layer function13C has an IP control unit27that executes the IP protocol.

Further, an area in the memory for storing various data includes a cache31, a forwarding information base (FIB)32, a PIT33, and a conversion table34. The cache31is an area for caching received contents. The FIB32is a table for storing Face when transferring the Interest packet corresponding to the content name to the next hop. The “Face” used herein is equivalent to IF in the CCN technology.FIG. 3is an explanatory view illustrating an example of the entry configuration of the FIB32.FIG. 3illustrates a #3FIB32in a #3relay node4. The #3FIB32illustrated inFIG. 3is an area for storing a contents name32A and a transfer destination Face32B in association with each other. The contents name32A is an identifier for identifying contents. The transfer destination Face32B is Face of a transfer destination to which the received Interest packet is transferred.

The PIT33is a table used when the received contents are transferred.FIG. 4is an explanatory view illustrating an example of the entry configuration of a #3PIT33.FIG. 4illustrates the #3PIT33in the #3relay node4. The #3PIT33illustrated inFIG. 4is an area for storing a contents name33A and a request source Face33B in association with each other. The contents name33A is an identifier for identifying contents. The request source Face33B is a request source Face of the Interest packet, that is, a transfer destination Face when the received contents are transferred.

The conversion table34is a Face-IP conversion table used when the request source Face and the IP address are converted.FIG. 5is an explanatory view illustrating an example of the entry configuration of the conversion table34.FIG. 5illustrates the conversion table34in the #3relay node4. The #3conversion table34illustrated inFIG. 5is an area for storing a Face34A and an IP address34B in association with each other. The Face34A is a transfer destination Face when the received contents are transferred. The IP address34B is an IP address corresponding to the transfer destination Face.

Each of the relay nodes4divides the received contents into, for example, a predetermined number of divided data, sequentially stores the divided data in a payload within an IP packet, and sequentially transfers a predetermined number of IP packets to the relay node4of the next hop. The transport layer function13B in the relay node4uses the IP layer function13C to sequentially receive a predetermined number of IP packets from the relay node4and acknowledges delivery of the predetermined number of IP packets. Then, after the acknowledgment of delivery of the IP packets, the CCN layer function13A in the relay node4aggregates the divided data in the predetermined number of IP packets, as received contents, and stores the received contents in the cache31. On the other hand, even when the IP router5of the IP layer is used on a path on which the received contents are transferred, it is possible to suppress the transfer rate of the received contents from being decreased. The reason for that is because the IP router5transfers the IP packets without aggregation or division.

The Interest control unit21includes a receiving unit21A, a transmitting unit216, and a control unit21C. The receiving unit21A receives an Interest packet from the previous hop. When it is determined that a cache is not required, that is the received contents are not saved in the cache, the transmitting unit21B determines whether or not a shortcut IP in the Interest packet is added. When it is determined that the shortcut IP is not added, the transmitting unit21B adds an IP address of the previous hop to an additional area of the shortcut IP and transmits the Interest packet with the IP address added thereto to the next hop. When it is determined that the shortcut IP is added, the transmitting unit21B transmits the Interest packet as it is to the next hop without changing the shortcut IP. When it is determined that a cache is required, that is the received contents are saved in the cache, the transmitting unit21B deletes the shortcut IP in the Interest packet, adds the IP address of its own device to a source address in the Interest packet, and transmits the Interest packet with the IP address as the source address to the next hop.

The control unit21C activates an aging timer at a timing referring to the PIT33and the request source Face in the conversion table34. When the aging timer is timed-up (i.e., expires), the control unit21C deletes the entry of the request source Face from the PIT33. Further, when the aging timer is timed-up, the control unit21C deletes the entry of the IP address corresponding to the request source Face from the conversion table34. As a result, since the entries which are not used for a long time in the PIT33and the conversion table34are deleted, the memory capacity in the PIT33and the conversion table34may be saved. When the request source Face is referred to again during the counting of the aging timer, the control unit21C resets the counting aging timer.

Next, the operation of the CCN system1according to the first embodiment will be described.FIG. 6is an explanatory view illustrating an example of a processing operation in the CCN system1related to contents request processing. A user terminal2_#0transmits an Interest packet including a contents name “Kawasaki” to a relay node4_#1. Upon receiving the Interest packet from the user terminal2_#0, since the relay node4_#1determines that a cache is required, the relay node4_#1sets the request source Face33B corresponding to the contents name33A in the Interest packet as “Face_#0” to update a PIT33_#1. Here, Face_#0is a Face addressed to the user terminal2_#0. Then, the relay node4_#1refers to “Face_#2” of a transfer destination Face32B corresponding to a contents name32A of the Interest packet in a FIB32_#1to transfer the Interest packet to a relay node4_#2. The source address in the Interest packet includes “Face_#1” of the relay node4_#1.

Upon receiving the Interest packet from the relay node4_#1, since the relay node4_#2determines that no cache is required, the relay node4_#2adds an IP address corresponding to “Face_#1” of the relay node4_#1to the shortcut IP in the Interest packet without updating a PIT33_#2. Then, the relay node4_#2refers to “Face_#3” as the transfer destination Face32B corresponding to the contents name32A of the Interest packet in the FIB32_#2to transfer the Interest packet to the relay node4_#3. The shortcut IP in the Interest packet contains the IP address corresponding to “Face_#1” of the relay node4_#1.

Upon receiving the Interest packet from the relay node4_#2, since the relay node4_#3determines that a cache is required, the relay node4_#3acquires an IP address corresponding to “Face_#1” from the shortcut IP in the Interest packet. The relay node4_#3sets the request source Face33B corresponding to the contents name33A in the Interest packet as “Temp Face_#1” and updates the PIT33_#3. Further, the relay node4_#3deletes the shortcut IP from the Interest packet. Then, the relay node4_#3refers to “Face_#4” as the transfer destination Face326corresponding to the contents name32A of the Interest packet in the FIB32_#3to transfer the Interest packet to a relay node4_#4. The source address in the Interest packet contains “Face_#3” of the relay node4_#3.

Upon receiving the Interest packet from the relay node4_#3, since the relay node4_#4determines that no cache is required, the relay node4_#4does not update a PIT33_#4and determines whether or not there is a shortcut IP in the Interest packet. Since there is no shortcut IP in the Interest packet, the relay node4_#4adds an IP address corresponding to “Face_#3,” which is the address of the relay node4_#3, to the shortcut IP in the Interest packet. Then, the relay node4_#4refers to “Face_#5” as the transfer destination Face32B corresponding to the contents name32A of the Interest packet in the FIB32_#4to transfer the Interest packet to a relay node4_#5. The shortcut IP in the Interest packet contains the IP address corresponding to “Face_#3” of the relay node4_#3.

Upon receiving the Interest packet from the relay node4_#4, since the relay node4_#5determines that no cache is required, the relay node4_#5does not update a PIT33_#5and determines whether or not there is a shortcut IP in the Interest packet. Since there is a shortcut IP in the Interest packet, the relay node4_#5maintains the IP address corresponding to “Face_#3” of the shortcut IP in the Interest packet. Then, the relay node4_#5refers to “Face_#6” as the transfer destination Face32B corresponding to the contents name32A of the Interest packet in the FIB32_#5to transfer the Interest packet to a relay node4_#6. The shortcut IP in the Interest packet contains the IP address corresponding to “Face_#3” of the relay node4_#3.

Upon receiving the Interest packet from the relay node4_#5, since the relay node4_#6determines that a cache is required, the relay node4_#6determines whether or not there is a shortcut IP in the Interest packet. Since there is a shortcut IP in the Interest packet, the relay node4_#6acquires an IP address corresponding to “Face_#3” of the shortcut IP. Further, the relay node4_#6sets the request source Face33B corresponding to the contents name33A in the Interest packet as “Temp Face_#3” and updates the PIT33_#6. Further, the relay node4_#6deletes the shortcut IP from the Interest packet. Then, the relay node4_#6refers to “Face_#7” as the transfer destination Face32B corresponding to the contents name32A of the Interest packet in the FIB32_#6to transfer the Interest packet to the server3. Here, Face_#7is a Face addressed to the server3. The source address in the Interest packet contains “Face_#6” of the relay node4_#6. As a result, the server3may receive Interest packets from the user terminal2_#0.

FIG. 7is an explanatory view illustrating an example of a processing operation in the CCN system1related to contents transfer processing. Upon receiving the Interest packet from the relay node4_#6, the server3illustrated inFIG. 7transfers request contents of the Interest packet to the relay node4_#6.

Upon receiving the request contents of the Interest packet from the server3, since the relay node4_#6determines that a cache is required, the relay node4_#6saves the received contents in the cache31. Further, the relay node4_#6refers to the PIT33_#6to acquire “Temp Face_#3” as the request source Face33B corresponding to the contents name33A of the received contents. Further, the relay node4_#6refers to a conversion table34_#6to convert “Temp Face_#3” of the acquired Face34A into an IP address34B “192.168.3.1”.

Further, the relay node4_#6forms a shortcut path for the relay node4_#3based on the IP address346corresponding to the Face34A. In this case, the shortcut path is a path of relay node4_#6→IP router5_#c→relay node4_#3. The relay node4_#6transfers the IP packet of the received contents to the IP router5_#c at the IP layer. Further, the IP router5_#c transfers the IP packet of the received contents to the relay node4_#3.

Upon receiving the received contents from the IP router5_#c, since the relay node4_#3determines that a cache is required, the relay node4_#3caches the received contents in the cache31. Further, the relay node4_#3refers to the PIT33_#3to acquire “Temp Face_#1” as the request source Face33B corresponding to the contents name33A of the received contents. Further, the relay node4_#3refers to the conversion table34_#3to convert “Temp Face_#1” of the Face34A into an IP address34B “192.168.1.1.” Further, the relay node4_#3forms a shortcut path for the relay node4_#1based on the IP address corresponding to “Temp Face_#1” corresponding to the request source Face33B. In this case, the shortcut path is a path of relay node4_#3→IP layer function13C in relay node_#2→relay node4_#1. The relay node4_#3transfers the received contents to the IP layer function13C in the relay node4_#2at the IP layer.

The IP layer function13C in the relay node4_#2relays the received contents to the relay node4_#1at the IP layer. Upon receiving the received contents, the relay node4_#1refers to the PIT33_#1and also refers to “Face_#0” as the request source Face33B corresponding to the contents name33A of the received contents to transfer the received contents to the user terminal2_#0. As a result, the user terminal2_#0may acquire desired received contents specified by the Interest packet.

The relay node4_#6deletes the relay nodes4_#4and #5requiring no cache on a path through which Interest packets are transferred, from the Hop-by-Hop communication and forms a shortcut path to the relay node4_#3. The relay node4_#6uses this shortcut path to transfer the received contents to the IP layer. In other words, as a result of eliminating the need to pass through the relay nodes4_#4and #5, a path between the relay node4_#6and the relay node4_#3goes through the IP router5_#c without going through the relay nodes4_#4and #5and the IP routers5_#a and #b. If this shortcut path is not used, the IP routers5_#a transfers the IP packets between the relay nodes4_#3and the relay nodes4_#4. If it is not also used, the IP routers5_#b transfers the IP packets between the relay nodes4_#5and the relay nodes4_#6. The IP router5_#c does not terminate the communication and gets away with only IP relaying of the IP packet. In addition, when the QoS allowing the performance of a path of relay node4_#6→IP router5_#c→relay node4_#3is set to no bandwidth guarantee, a TCP is selected as a transport protocol. Then, the TCP control unit25in the relay node4_#6establishes a TCP connection in the shortcut path to the relay node4_#3and uses the TCP connection to transfer the received contents.

The relay node4_#3deletes the relay node4_#2requiring no cache on a path through which Interest packets are transferred, from the Hop-by-Hop communication and forms a shortcut path to the relay node4_#1. The relay node4_#3uses this shortcut path to transfer the received contents to the IP layer. In other words, as a result of eliminating the need to pass through the CCN layer function13A of the relay node4_#2, a path between the relay node4_#3and the relay node4_#1goes through the IP layer function13C of the relay node4_#2without going through the CCN layer function13A of the relay node4_#2. Moreover, when using the CCN layer function13A in the relay node4_#2, it is necessary to terminate the communication once and replace it with a new communication. That is, the CCN layer function13A utilizes the IP layer function13C to collect IP packets storing the divided data of the received contents, forms the received contents with the divided data in the collected IP packets, and saves the received contents in the cache31. In contrast, the IP layer function13C does not terminate the communication and gets away with only IP relaying of the IP packet storing the divided data of the received contents to the next hop with the same granularity. When the QoS allowing the performance of a path of relay node4_#3→IP layer function13C of relay node4_#2→relay node4_#1is set to be a bandwidth guarantee, a UDP is selected as a transport protocol. Then, the UDP control unit26in the relay node4_#3establishes a UDP connection in the shortcut path to the relay node4_#1and uses the UDP connection to transfer the received contents.

FIG. 8is a sequence diagram illustrating an example of a processing operation of the CCN system1from contents request to contents acquisition. The user terminal2_#0illustrated inFIG. 8notifies an Interest packet to the relay node4_#1(operation S11). The Interest control unit21in the relay node4_#1receives the Interest packet from the user terminal2. Then, the cache control unit22in the relay node4_#1determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that a cache is required (operation S12), the Interest control unit21in the relay node4_#1transfers the Interest packet to the relay node4_#2(operation S13).

The cache control unit22in the relay node4_#2receives the Interest packet from the relay node4_#1and determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that no cache is required (operation S14), the Interest control unit21in the relay node4_#2adds an IP address corresponding to “Face_#1” of the relay node4_#1, which is the previous hop, to a shortcut IP in the Interest packet (operation S15). The Interest control unit21in the relay node4_#2transfers the Interest packet with the IP address corresponding to “Face_#1” added to the shortcut IP to the relay node4_#3(operation S16).

The cache control unit22in the relay node4_#3receives the Interest packet from the relay node4_#2and determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that a cache is required (operation S17), the Interest control unit21in the relay node4_#3updates an IP address corresponding to “Face_#1” of the shortcut IP to the PIT33_#3and the conversion table34_#3(operation S18). The PIT33_#3updates the contents name “Kawasaki” and the request source Face “Temp Face_#1.” The conversion table34_#3updates the IP address of the shortcut IP and “Temp Face_#1.” The Interest control unit21in the relay node4_#3deletes the shortcut IP from the Interest packet (operation S19) and transfers the Interest packet to the relay node4_#4(operation S20).

The cache control unit22in the relay node4_#4receives the Interest packet from the relay node4_#3and determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that no cache is required (operation S21), the Interest control unit21in the relay node4_#4adds an IP address corresponding to “Face_#3” of the relay node4_#3, which is the previous hop, to the shortcut IP in the Interest packet (Operation S22). The Interest control unit21in the relay node4_#4transfers the Interest packet with the IP address corresponding to “Face_#3” added to the shortcut IP to the relay node4_#5(operation S23).

The cache control unit22in the relay node4_#5receives the Interest packet from the relay node4_#4and determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that no cache is required (operation S24), the Interest control unit21in the relay node4_#5does not update the shortcut IP in the Interest packet (operation S25) and transfers the Interest packet to the relay node4_#6(operation S26). The cache control unit22in the relay node4_#6receives the Interest packet from the relay node4_#5and determines whether or not a cache is required, based on a contents name in the Interest packet. When it is determined that a cache is required (operation S27), the Interest control unit21in the relay node4_#6updates an IP address corresponding to “Face_#3” of the shortcut IP to the PIT33_#6and the conversion table34_#6(operation S28). The PIT33_#6updates the contents name “Kawasaki” and the request source Face “Temp Face_#3.” The conversion table34_#6updates the IP address of the shortcut IP and “Temp Face_#3.” The relay node4_#6deletes the shortcut IP from the Interest packet (operation S29) and transfers the Interest packet to the server3(operation S30).

Upon receiving the Interest packet, the server3acquires contents corresponding to the contents name in the Interest packet from a storage destination and transfers the acquired contents to the relay node4_#6(operation S31). Upon receiving the contents, the path setting unit24in the relay node4_#6sets a shortcut path for the relay node4_#3based on the PIT33_#6and the conversion table34_#6(operation S32). As for the shortcut path, a path of relay node4_#6→IP router5_#c→relay node4_#3is set, and a TCP is selected since a bandwidth guarantee is absent in the shortcut path.

The contents transfer unit23in the relay node4_#6uses the set path to transfer the received contents to the relay node4_#3(operation S33). At this time, upon receiving the received contents from the relay node4_#6, the IP router5_#c on the shortcut path refers to a routing table of the IP layer to pass the IP packet of the received contents and transfers the passed IP packet to the relay node4_#3(operation S34).

Upon receiving the received contents, the path setting unit24in the relay node4_#3sets a shortcut path for the relay node4_#1based on the PIT33_#3and the conversion table34_#3(operation S35). As for the shortcut path, a path of relay node4_#3→IP layer function13C in relay node4_#2→relay node4_#1is set, and a UDP is selected since a bandwidth guarantee is present in the shortcut path. The IP layer function13C in the relay node4_#2passes the IP packet of the received contents from the relay node4_#3and transfers the passed IP packet of the received contents to the relay node4_#1(operation S36).

Further, the content transfer unit23in the relay node4_#1receives the received contents from the IP layer function13C in the relay node4_#2and transfers the received contents to the user terminal2(operation S37).

FIG. 9is a flowchart illustrating an example of a processing operation of the relay node4related to reception processing. The Interest control unit21in the relay node4illustrated inFIG. 9determines whether or not an Interest packet has been received (operation S41). When it is determined that an Interest packet has been received (“Yes” in operation S41), the Interest control unit21in the relay node4determines whether or not contents are saved in the cache31(operation S42).

When it is determined that no contents are saved in the cache31(“No” in operation S42), the cache control unit22in the relay node4determines whether or not a cache is required (operation S43). When it is determined the no cache is required (“Not required” in operation S43), the Interest control unit21in the relay node4determines whether or not a shortcut IP is added to the Interest packet (operation S44). When it is determined that a shortcut IP is not added to the Interest packet (“No” in operation S44), the Interest control unit21in the relay node4adds a shortcut IP of the previous hop to the Interest packet (operation S45). The Interest control unit21transfers the Interest packet to the next hop (operation S46). Then, the Interest control unit21in the relay node4transfers the Interest packet to the next hop and then ends the processing operation illustrated inFIG. 9. When it is determined that a shortcut IP is added to the Interest packet (“Yes” in operation S44), the Interest control unit21in the relay node4proceeds to the operation S46so as to transfer the Interest packet to the next hop without changing the shortcut IP.

When it is determined that a cache is required (“Required” in operation S43), the Interest control unit21in the relay node4determines whether or not a shortcut IP is added to the Interest packet (operation S47). When it determined that no shortcut IP is added to the Interest packet (“No” in operation S47), the relay node4updates the PIT33with a Face of the previous hop as a request source Face (operation S48). Then, the relay node4proceeds to the operation S46so as to transfer the Interest packet to the next hop.

When it is determined that the shortcut IP is added to the Interest packet (“Yes” in operation S47), the Interest control unit21updates the PIT33with a Face corresponding to an IP address added to the shortcut IP as a request source Face (operation S49). Further, the Interest control unit21in the relay node4updates the conversion table34(operation S50), deletes the shortcut IP of the Interest packet (operation S51), and proceeds to the operation S46so as to transfer the Interest packet to the next hop.

When it is determined that contents are saved in the cache31(“Yes” in operation S42), the Interest control unit21in the relay node4determines whether or not a shortcut IP is added to the Interest packet (operation S52). When it is determined that a shortcut IP is added to the Interest packet (“Yes” in operation S52), the Interest control unit21in the relay node4updates the conversion table34(operation S53). Furthermore, the path setting unit24in the relay node4sets a shortcut path based on the contents of the conversion table34(operation S54). The contents transfer unit23in the relay node4distributes the received contents after setting the path (operation S55), and ends the processing operation illustrated inFIG. 9.

When it is determined that no shortcut IP is added to the Interest packet (“No” in operation S52), the path setting unit24in the relay node4proceeds to operation S54so as to set a shortcut path based on the contents of the conversion table34.

FIG. 10is a flowchart illustrating an example of a processing operation of the relay node4related to contents relay processing. The cache control unit22in the relay node4illustrated inFIG. 10determines whether or not contents have been received (operation S61). When it is determined that contents have been received (“Yes” in operation S61), the cache control unit22in the relay node4saves the received contents in the cache31(operation S62). Further, when the received contents are saved in the cache31, the path setting unit24in the relay node4refers to the contents of the PIT33and the conversion table34to set a shortcut path for transferring the received contents (operation S63).

The contents transfer unit23in the relay node4updates the contents of the PIT33(operation S64), transfers the received contents to the request source Face (operation S65), and ends the processing operation illustrated inFIG. 10. When it is determined that no contents have been received (“No” in operation S61), the relay node4ends the processing operation illustrated inFIG. 10.

Upon receiving the contents, the relay node4saves the received contents in the cache31. The relay node4sets a shortcut path of the received contents based on a request source Face corresponding to the received contents in the PIT33and the conversion table34and an IP address corresponding to the request source Face. Further, the relay node4transfers the received contents via the shortcut path.

In the CCN system1according to the first embodiment, among relay nodes4on a path through which Interest packets are transferred, a relay node4requiring no cache is deleted to form a shortcut path. As a result, it is possible to execute optimal routing from the server3or a relay node4that stores the received contents in the cache31to the user terminal2, thereby increasing the transfer rate of the received contents.

In the CCN system1, since the received contents are transferred to the IP layer even under the condition that relay nodes4and IP routers5are mixed in a shortcut path, the transfer rate of the received contents may be increased.

Further, in the CCN system1, when QoS of the shortcut path for transferring the received contents has no bandwidth guarantee, a TCP connection is established on the shortcut path. As a result, the congestion control and retransmission control may be ensured on the shortcut path for transferring the received contents.

Further, in the CCN system1, when the QoS of the shortcut path for transferring the received contents has bandwidth guarantee, a UDP connection is established on the shortcut path. As a result, it is unnecessary to execute congestion control and retransmission control on the shortcut path for transferring the received contents, thereby suppressing the processing load.

Second Embodiment

FIG. 11is an explanatory view illustrating an example of a processing operation from contents request to contents acquisition of a CCN system1A according to a second embodiment. InFIG. 11, the same components as those of the CCN system1of the first embodiment will be denoted by the same reference numerals as used in the first embodiment, and explanation thereof will be omitted.

It is assumed that the relay nodes4_#1to #6in the CCN system1A illustrated inFIG. 11have saved contents including the contents name “Kawasaki” in their respective caches31. In the CCN system1A, an Interest packet including the contents name “Kawasaki” is transmitted from a user terminal2_#100to a relay node4_#10.

Upon receiving the Interest packet from the user terminal2_#100, since the relay node4_#10determines that no cache is required, a CCN layer function13A in the relay node4_#10does not update a PIT33_#10. Further, the CCN layer function13A adds an IP address corresponding to “Face_#100” of the user terminal2_#100to a shortcut IP in the Interest packet. Then, the relay node4_#10refers to “Face_#2” as a transfer destination Face32B corresponding to a contents name32A of the Interest packet in a FIB32_#10to transfer the Interest packet to the relay node4_#2.

Upon receiving the Interest packet including the IP address corresponding to “Face_#100” as the shortcut IP, the relay node4_#2determines whether or not the contents of the contents name has been saved in the cache31, based on the contents name in the Interest packet. When it is determined that the contents have been saved in the cache31, the relay node4_#2determines whether or not a shortcut IP is added to the Interest packet. When it is determined that a shortcut IP is added, the relay node4_#2updates the IP address corresponding to “Face_#100” of the shortcut IP to the PIT33and the conversion table34. The PIT33_#2updates the contents name “Kawasaki” and “Face_#100.” The conversion table34_#2updates the shortcut IP and “Face_#100.” The relay node4_#2acquires from the cache31the received contents corresponding to the contents name in the Interest packet. Further, the relay node4_#2forms a shortcut path to the user terminal2_#100based on an IP address corresponding to a request source Face (Face_#100) corresponding to the contents name in the PIT33. In this case, the shortcut path is a path of relay node4_#2→IP layer function13C of relay node4_#10→user terminal2_#100. When QoS on the shortcut path of relay node4_#2→IP layer function13C of relay node4_#10→user terminal2_#100has no bandwidth guarantee, the relay node4_#2establishes a TCP connection in the shortcut path. The relay node4_#2transfers the IP packet of the received contents to the IP layer function13C of the relay node4_#10at the IP layer.

The IP layer function13C of the relay node4_#10transfers the received contents from the relay node4_#2to the user terminal2_#100at the IP layer. As a result, since the IP layer function13C of the relay node4_#10does not pass through the CCN layer function13A, the IP layer function13C gets away with only IP relaying of the IP packet of the received contents to the IP layer. Then, the user terminal2_#100may acquire the received contents from the relay node4_#2via the IP layer function13C of the relay node4_#10.

In the CCN system1A according to the second embodiment, under the condition that a relay node4on a path from the user terminal2_#100to the server3caches contents, the CCN layer function13A of the relay node4_#10requiring no cache is excluded from Hop-by-Hop communication. Then, the CCN system1A may increase the transfer rate of the contents while selecting a suitable transport protocol according to the set contents of the QoS allowing the performance of the shortcut path.

Third Embodiment

FIG. 12is an explanatory view illustrating an example of a processing operation from contents request to contents acquisition of a CCN system1B according to a third embodiment. InFIG. 12, the same components as those of the CCN system1of the first embodiment will be denoted by the same reference numerals as used in the first embodiment, and explanation thereof will be omitted.

The CCN system1B illustrated inFIG. 12replaces the server3storing contents with a temperature sensor node3A that detects a temperature as contents and stores temperature data as a result of the detection. The temperature sensor node3A is a node capable of communicating with the relay nodes4and the IP routers5.

It is assumed that the user terminal2#0desires data such as the latest temperature detected by the temperature sensor node3A, rather than the contents stored in the caches31in the relay nodes4.

The user terminal2_#0adds an express flag to an Interest packet including a contents name “/sensor/temperature” and transmits the Interest packet to the relay node4_#1. Upon receiving the Interest packet, the relay node4_#1determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#1adds an IP address corresponding to Face_#0of the user terminal2_#0to the shortcut IP in the Interest packet and transfers the Interest packet to the relay node4_#2of the next hop.

Upon receiving the Interest packet from the relay node4_#1, the relay node4_#2determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#2determines whether or not a shortcut IP in the Interest packet is added. When it is determined that a shortcut IP is added, the relay node4_#2transfers the Interest packet to the relay node4_#3, which is the next hop, without changing the shortcut IP (IP address corresponding to Face_#0).

Upon receiving the Interest packet from the relay node4_#2, the relay node4_#3determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#3determines whether or not a shortcut IP in the Interest packet is added. When it is determined that a shortcut IP is added, the relay node4_#3transfers the Interest packet to the relay node4_#4, which is the next hop, without changing the shortcut IP (IP address corresponding to Face_#0).

Upon receiving the Interest packet from the relay node4_#3, the relay node4_#4determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#4determines whether or not a shortcut IP in the Interest packet is added. When it is determined that a shortcut IP is added, the relay node4_#4transfers the Interest packet to the relay node4_#5, which is the next hop, without changing the shortcut IP (IP address corresponding to Face_#0).

Upon receiving the Interest packet from the relay node4_#4, the relay node4_#5determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#5determines whether or not a shortcut IP in the Interest packet is added. When it is determined that a shortcut IP is added, the relay node4_#5transfers the Interest packet to the relay node4_#6, which is the next hop, without changing the shortcut IP (IP address corresponding to Face_#0).

Upon receiving the Interest packet from the relay node4_#5, the relay node4_#6determines that no contents cache is required, based on the express flag in the Interest packet. Further, the relay node4_#6determines whether or not a shortcut IP in the Interest packet is added. When it is determined that a shortcut IP is added, the relay node4_#6transfers the Interest packet to the temperature sensor node3A, which is the next hop, without changing the shortcut IP (IP address corresponding to Face_#0).

Upon receiving the Interest packet, the temperature sensor node3A determines whether or not temperature data corresponding to a contents name has been saved in the cache, based on the contents name in the Interest packet. When it is determined that temperature data corresponding to a content name has been stored in the cache, the temperature sensor node3A forms a shortcut path based on a shortcut IP in the Interest packet, that is, an IP address of the user terminal2_#0. In this case, the shortcut path is a path of temperature sensor node3A→IP router5_#d→user terminal2_#0. Further, the QoS allowing the performance of the shortcut path is assumed to have a bandwidth guarantee.

The temperature sensor node3A establishes a UDP connection on the shortcut path and transfers the temperature data to the IP router5_#d with the UDP connection. Further, the IP router5_#d uses the UDP connection to transfer the received temperature data to the user terminal2_#0.

In the CCN system1B according to the third embodiment, by adding the express flag to the Interest packet, the relay nodes4on a path through which Interest packets are transferred is instructed not to require a cache. In the CCN system1B, the relay nodes4_#1to #6on a path between the user terminal2_#0and the temperature sensor node3A are deleted to form a shortcut path. The temperature sensor node3A transfers the temperature data to the user terminal2_#0via the IP router5_#d on the shortcut path. As a result, the user terminal2_#0may increase the transfer rate when transferring the latest temperature data from the temperature sensor node3A.

In addition, each component of the respective illustrated units is not necessarily required to be configured physically as illustrated in the drawings. That is, specific forms of distribution and integration of the individual units are not limited to those illustrated in the drawings, and all or some of the units may be configured to be distributed or integrated functionally or physically in arbitrary units according to various loads, usage conditions, etc.

Furthermore, all or some of the various processing functions performed in each device may be executed on a CPU (or a microcomputer such as a micro processing unit (MPU) or a micro controller unit (MCU)). In addition, it is to be understood that all or some of the various processing functions may be executed on a program that is analyzed and executed by a CPU (or a microcomputer such as an MPU or an MCU), or on hardware by wired logic.