1 Introduction

With the great success of the Internet and the popularity of personal mobile devices with powerful processing and abundant storage capabilities, mobile devices become actually the main force of generating, consuming and providing multimedia contents via the Internet [1, 13]. As mobile devices usually work as Internet of Things (IoT) [9, 20, 21], so it is significant to achieve efficient IoT-based content delivery [7, 19]. This paper focuses on the content communication issue in the multi-hop IoT [22]. The Internet concentrates on end-to-end communications. If end-to-end communications are used for multimedia content retrieval in mobile environments, they might increase content communication costs and degrade success rates. First, each end-to-end communication process is performed independently [22], which results in redundant content request and response messages, and greatly increases content communication costs. Second, a consumer must acquire contents from a target provider even though the provider may be overloaded. If the target provider is unreachable, the content communication failure occurs. Third, if a consumer moves between subnets, it has to perform the care-of address (CoA) configuration and binding operations. These time-consuming operations might incur the packet loss and further increase the content communication cost.

The content-centric mechanism is a novel content communication model [2, 12], where a consumer starts a content communication process by sending an Interest with a name. The Interest is forwarded towards potential providers. Any provider receiving Interest sends a Data with target contents back to consumers via pending interest table (PIT). If n consumers send n Interest to acquire contents, these Interest can be aggregated via PIT. This greatly reduces content communication costs. Moreover, a consumer may retrieve contents from any provider [17], and either the CoA configuration or the binding operation is not required. Hence, the content-centric mechanism might be an ideal method to perform efficient content communications.

Based on the observation, we are motivated to exploit the content-centric mechanism to achieve IoT-based content communication. However, the content-centric mechanism also suffers from the limitations if it works in mobile IoT environments. For example, reverse paths may frequently disrupt due to node mobility, which leads to frequent content communication failures. The replicas of contents are cached on different providers, and the content-centric mechanism employs flooding to acquire and update contents, which incurs huge costs.

Anycast is a unicast-based communication model that can achieve content delivery without relying on reverse paths and reduce content communication costs compared to flooding [14, 16]. Moreover, any anycast member may provide contents [14]. To overcome the limitations of the content-centric mechanism, we are motivated to employ anycast to achieve the content-centric mechanism in IoT, and propose a content-centric framework in IoT (CCI) to lower content communication costs and enhance success rates via the following novelties:

  1. (1)

    CCI exploits anycast to achieve the content-centric mechanism so that consumers can employ unicast to retrieve contents from the nearest anycast member without relying on reverse paths.

  2. (2)

    CCI proposes a pending request mechanism to achieve aggregation, and based on this mechanism consumers can retrieve contents via one content communication process. Also, CCI extends multicast to the content-centric communications so that the contents can be updated in the multicast way instead of in the flooding way.

  3. (3)

    CCI proposes an address separation mechanism where a mobile node is identified by a node ID instead of an address, so either the CoA configuration or the binding operation is not needed.

This work has the following differences from [20] and [21]:

  1. (1)

    The architectures are different. The work [21] deals with a fixed network and in each subnet multiple content servers directly link with switches or access routers. The work [20] and this proposal handle a mobile network, and mobile nodes are multi-hop away from an access router. However, in [20] a content server is deployed in the center of a subnet and is multi-hop away from an access router, while in this work a content server is integrated with an access router and is located at the edge of a subnet.

  2. (2)

    The address structures are different. The work [21] does not discuss the address structure issue. The work [20] defines the content address structure and employs the content address to perform data communications. By contrast, this work proposes the anycast and multicast address structures to deliver data.

  3. (3)

    The data communication algorithms are different. In [21], routers and switches maintain forwarding tables and perform forwarding functions. In [20] and this proposal, mobile nodes perform forwarding functions. However, in [20] a mobile node independently retrieves data from a server via one data delivery procedure whereas in this proposal multiple mobile nodes employ the anycast technology to share data from the nearest anycast member via one data delivery process.

  4. (4)

    The content update algorithms are different. The work [20] does not address the content update issues. The work [21] relies on forwarding tables to update contents in a limited flooding way while this work extends multicast to content-centric communications and employ multicast instead of flooding to update contents.

This paper is organized as follows. In Sect. 2 the related work on the content-centric mechanism is discussed, in Sects. 3 and 4 CCI is presented, in Sects. 5 and 6 CCI is evaluated, and Sect. 7 concludes the paper with a summary.

2 Related work

The Internet faces some challenges when it is used for dissemination and retrieval of multimedia contents. For example, each consumer independently acquires target contents from a specific provider identified by a destination address [16]. By contrast, the content-centric mechanism overcomes these challenges because any provider can provide the content. Therefore, the content-centric mechanism might be an ideal method to perform efficient contents communications for IoT. The content-centric standard [12] proposes a content-to-consumer framework to achieve efficient content delivery. This framework employs Interest and Data so that consumers can retrieve contents from the nearest providers. Moreover, the content-centric standard achieves the content update by employing flooding to guarantee that consumers retrieve real-time contents. In [4], a forwarding algorithm is presented and this algorithm chooses forwarders using a variety of metrics such as distance to mitigate redundant control information caused by flooding Interest. In [3], a search-and-routing method is proposed to obtain data from the nearest device with target data. This method employs the probe mechanism to discover devices with target data, but this probe procedure might incur additional overheads. In [15], the authors combine edge computing with the content-centric mechanism and decouple their data and control planes to enhance the performance of content communications. The authors implements two typical applications to justify the advantages of the solution. In [23], the authors propose a content-aware data delivery method. This solution employs fog computing to reduce content communication latency. Moreover, the content-aware filtering technology is used to achieve accurate filtering to further improve the content communication performance. In [25], the authors employ the content naming and content-based routing to organize networks for disaster recovery. This solution exploits the content-centric mechanism to connect rapidly users in post-disaster scenarios. This work demonstrates that the content-centric mechanism can efficiently improve the routing performance and satisfy the requirements of disaster recovery. In [18, 20, 21], the authors demonstrate that the content-centric mechanism can assist in performing efficient content communications, but node mobility and flooding are significant challenges.

The above solutions exploit the content-centric mechanism to improve the content communication performance. However, the improvements are limited because reverse-path disruptions caused by node mobility lead to frequent content communication failures and flooding used to acquire contents incurs huge overheads. Moreover, only the content-centric standard [12] addresses the content update issue whereas other existing solutions [3, 4, 15, 18, 23, 25] do not discuss how to solve the content update issue. Although the content-centric standard [12] ensures validity of contents, it performs the content update by employing flooding. Consequently, the costs and delays of the content update are relatively considerable.

Anycast is a unicast-based communication model that can deliver contents without relying on reverse paths and help suppress content delivery costs caused by content-centric flooding [16]. In [9], the authors employ unicast to retrieve contents to suppress the content communication costs and delays. However, this solution performs the content communications between a consumer and a target provider, so the performance improvements are limited. Moreover, this solution does not address the content update issue. In [22], the authors propose an anycast-based content-centric IoT (ACCM) to achieve content communications. In ACCM, the providers form an anycast group. The strength of ACCM is that the content update is achieved to ensure that consumers can acquire real-time contents. However, as each anycast member independently performs the content update, the costs and delays of the content update are relatively considerable. In [14], an anycast-based content communication method is proposed to reduce content communication delays and overheads. The analytical results justify the advantages of anycast in content communications because target contents are provided by the nearest anycast member. In [8], anycast is employed to reduce latency of content communications. In the solution a variety of metrics are used to establish an anycast tree and contents are delivered by using the anycast tree. The analytical results demonstrate superiority of anycast in content delivery because contents are delivered by the optimal anycast member.

Based on the advantages of anycast, we are motivated to employ anycast to overcome the disadvantages of the content-centric mechanism such as reverse-path disruptions and flooding so that consumers can employ unicast to retrieve contents from the nearest provider without replying on reverse paths.

3 Architecture

The CCI architecture consists of K access routers (ARs) and mobile nodes. Each ARk (1 ≤ k ≤ K) is defined by its unique location coordinates (xk, yk). A mobile node performs the forwarding function, and achieves the content communications via the nearest AR. An AR and the mobile nodes performing communications via the AR form a subnet that is actually an Internet-based IoT, so the concept of the subnet in CCI is the same as the one in the traditional IP network. In a subnet, mobile nodes may be multi-hop away from the local AR. In a subnet, there is a content server whose function is to cache local contents, and the content server and AR are integrated together and share one address. The purpose of the content server is twofold. First, the content server has abundant storage resources and can cache and provide contents even if all mobile anycast members leave the subnet. This helps improve the success rates of content communications. Second, the content server can assist in shortening the distance between a consumer and the remote contents in the inter-subnet communication scenario, which helps reduce the content communication delays and costs. The CCI architecture is shown in Fig. 1, where ARk is identified by location coordinates (xk, yk), and ARk and the mobile nodes achieving communications via ARk construct subnet Bk.

Fig. 1
figure 1

CCI architecture

In IoT, a mobile node uses a unicast address, an anycast address and a multicast address to perform content communications and update. A unicast address is used for routing, an anycast address uniquely identifies a type of contents and is used for seeking target contents, and a multicast address is used for updating target contents. As content delivery based on geo-location information can assist in improving the communication performance [5], we propose a location-based unicast address structure and aim to retrieve contents from the nearest anycast member. A unicast address contains the network prefix (NP) and the interface ID that consists of the node ID and the location coordinates, as shown in Table 1. The node ID of an AR is zero. An anycast address consists of the NP and the interface ID whose value is zero. This means that NP actually identifies a type of contents, as shown in Table 2. The multicast address structure includes the multicast prefix (MP) and the group ID that includes the NP and the reserved field, as shown in Table 3.

Table 1 Unicast address
Table 2 Anycast address
Table 3 Multicast address

In Table 1, the node ID space is [1, 22i−2j−1] that is partitioned into K parts, and each part is for each subnet. The node ID space Ak in the kth subnet Bk is shown in (1) and is maintained by ARk. In Bk, the node ID of ARk is zero. After a mobile node in Bk starts, it uses the existing addressing method [24] to acquire a unique node ID from ARk, and is defined by the node ID during its lifetime.

$$A_k=\left\{\begin{array}{l}\lbrack\frac{(k-1)\cdot2^{2i-2j}}K+1,\frac{k\cdot2^{2i-2j}}K\rbrack;1\leq k<K\\\lbrack\frac{(k-1)\cdot2^{2i-2j}}K+1,\frac{k\cdot2^{2i-2j}}K-1\rbrack;k=K\end{array}\right.$$
(1)

4 Content-centric IoT famework

Each AR or mobile node maintains a content index table to store the information on providers, and an entry contains the anycast address, the node ID, the coordinates and the lifetime. The AR and mobile nodes in a subnet share one index table that is named as the coordinates of the AR. For example, the index table name in Bk is (xk, yk). After a mobile node starts, it acquires the coordinates of each AR by using the pre-load map. Anycast address A1 defines content C1 and anycast group G1. The server whose NP is equal to the one of A1 and the mobile nodes which can provide C1 form G1 and multicast group P1 identified by multicast address U1 whose NP is equal to the one of A1.

4.1 Content announcement

The node ID of mobile node M1 is IM1 and the coordinates are (xM1, yM1). M1 is closest to ARk and can produce content C1 identified by anycast address A1. The members in anycast group G1 form multicast group P1. ARk is located in subnet Bk with NPk and its coordinates are (xk, yk). After M1 produces C1, it does the following content announcement operations:

  1. (1)

    M1 creates the index table Th with name (xk, yk) and creates an entry where the anycast address is A1, the node ID is IM1, and the coordinates are (xM1, yM1). Then, M1 piggybacks Th in hello [10] and becomes a member of G1 and P1.

  2. (2)

    The mobile node receives hello with Th. If the mobile node is in subnet Bk, it performs the operations based on the following cases:

Case 1::

There is the entry Eh in Th where neither the anycast address nor the node ID is the one of any entry in Tm

The mobile node adds Eh in Tm.

Case 2::

There is the entry Eh in Th where the anycast address and node ID are equal to ones of the entry Em in Tm and the lifetime is larger than the one of Em

The mobile node updates the coordinates and lifetime in Em with the ones in Eh.

Case 3::

Neither Case 1 nor Case 2 is satisfied.

It goes to 4).

  1. (3)

    The mobile node piggybacks Tm in hello and goes to 2).

  2. (4)

    The process is complete.

If M1 changes its location, it updates the corresponding index entry, and piggybacks the index table in hello. In this way, the nodes in Bk can share the real-time index table. As shown in Fig. 2, the ID of mobile node M1/M2 is IM1/IM2 and the coordinates are (xM1, yM1)/(xM2, yM2). The ID of content server S1 is IS1 and the coordinates are (xS1, yS1). Content C1/C2 is defined by anycast address A1/A2. After M1/M2 produces C1/C2, it creates an index entry. Then, S1 generates C1 and creates an index entry. At time T1, M1/M2/S1 becomes a member of G1 and P1, and shares the index table with name (xk, yk) at T1.

Fig. 2
figure 2

Content announcement

4.2 Intra-subnet content communication

The node ID of mobile node N1 is IN1 and the coordinates are (xN1, yN1). Mobile node N1 is in Bk and desires content C1 identified by anycast address A1. If there is at least an index entry where the anycast address is A1, N1 acquires C1 via the following process:

  1. (1)

    N1 selects the nearest anycast member M1 with anycast address A1, and uses A1’s NP and M1’s node ID and coordinates to construct M1’s unicast address. Then, N1 sends a C-Req message. In C-Req, the destination address is M1’s unicast address, and the source address is N1’s unicast address where the NP is zero, the node ID is IN1 and the coordinates are (xN1, yN1).

  2. (2)

    If any member of group G1 receives C-Req, it sends a C-Rep message with C1 and goes to 4).

  3. (3)

    If M1 receives C-Req, it returns C-Rep with C1. If the previous hop of M1 detects that M1 is unreachable, it selects another member of G1 and updates the node ID and coordinates of the destination address in C-Req with the ones of the member, and forwards C-Req. In the latter case, after the member receives C-Req, it returns C-Rep.

  4. (4)

    After N1 or an intermediate node that desires C1 receives C-Rep, it caches C1, becomes a member of G1 and P1, creates an entry in the index table with name (xk, yk) and piggybacks the table in hello, as shown in Fig. 2.

Since CCI can update the index table in real time, the anycast members in the index table are usually active and reachable. As shown in Fig. 2, the ID of mobile node N1/N2 is IN1/IN2 and the coordinates are (xN1, yN1)/(xN2, yN2). Content C1/C2 is defined by anycast address A1/A2. At time T2, based on the index table, N1/N2 acquires C1/C2 from the nearest provider M1/M2, becomes a member of G1 and P1, and updates the index table with name (xk, yk) at T2. In CCI, a mobile node acquires data from the nearest anycast member to reduce the content communication latency and cost. As shown in Fig. 2, mobile node N1 requesting content C1 is closest to anycast member M1 rather than content server S1, so it uses M1’s unicast address to retrieve content C1 from M1.

4.3 Inter-subnet content communications

An AR maintains a pending request table (PRT) to store the information on consumers, and each entry includes the anycast address, the node ID and the coordinates. Mobile node N1 is in subnet Bk where the AR is ARk, and desires content C3 identified by anycast address A3 whose NP is NP3. The coordinates of ARk with NPk are (xk, yk). If there is no index entry for A3, N1 acquires C3 via the following process:

  1. (1)

    N1 constructs a unicast address where the NP is NP3, the node ID is zero and the coordinates are (xk, yk). Then, N1 sends C-Req where the destination address is the unicast address, and the source address is N1’s unicast address.

  2. (2)

    If an intermediate node or ARk is a member of anycast group G3 identified by A3, it returns C-Rep with C3, and goes to 6).

  3. (3)

    If ARk does not have the PRT entry for A3, it updates the NP of the source address in C-Rep with NPk, forwards C-Req, and creates one PRT entry where the anycast address is A3, the node ID is I N1 and the coordinates are (xN1, yN1).

  4. (4)

    After C-Req reaches AR3 whose NP is NP3 via the Internet, AR3 asks the local content server S3 to return C-Rep with C3.

  5. (5)

    C-Rep reaches ARk via the Internet. Based on the PRT, ARk forwards C-Rep to each node identified by the entry where the anycast address is A3, and removes the PRT entries.

  6. (6)

    After N1 or an intermediate node that desires C3 receives C-Rep, it stores C3, becomes a member of anycast group G3 and multicast group P3, and creates an entry in the index table with name (xk, yk).

As shown in Fig. 3, the ID of mobile node N1/N2 is IN1/IN2 and the coordinates are (xN1, yN1)/(xN2, yN2). The ID of content server S3 is IS3 and the coordinates are (xS3, yS3). N1 sends C-Req to retrieve C3. AR1 receiving C-Req creates one PRT entry for A3 and routes C-Rep towards AR3. Then, N2 sends C-Req to get C3. After AR1 receives C-Req at time T1, it creates one PRT entry for A3 and waits for C3. In this way, the aggregation is achieved. AR3 receiving C-Req forwards C-Req to S3 that returns C-Rep with C3. AR1 forwards C-Rep to N1 and N2 based on PRT, caches C3 and creates an index entry. After N1/N2 retrieves C3, it caches C3 and creates an index entry. At time T2, N1/N2/S1 becomes a member of G3 and P3, and shares the index table with name (xk, yk) at T2. As shown in Fig. 3, content server S3 in subnet B3 is the anycast member caching content C3. If in subnet B3 there are mobile anycast members caching content C3, the distance from mobile node N1 to content server S3 is smaller than the distance from N1 to any mobile anycast member in subnet B3. In CCI, a mobile node acquires content from the nearest anycast member to reduce the content retrieval latency and cost, so N1 retrieves content C3 from server S3 rather than other mobile anycast members in B3.

Fig. 3
figure 3

Inter-subnet content communications

4.4 Content update

The members of anycast group G1 identified by anycast address A1 whose NP is NP1 form multicast group P1 identified by multicast address U1. A1 identifies content C1 and mobile node M1 is a member of G1 and P1. If M1 updates C1, it does the following content update process:

  1. (1)

    M1 constructs a multicast address where the MP is equal to the multicast prefix, the NP is equal to NP1 and the reserved field is zero. Then, M1 sends a C-Update message. In C-Update, the destination address is the constructed multicast address, the source address is M1’s unicast address where the NP is zero, the node ID is IM1 and the coordinates are (xM1, yM1), and the payload is the updated content.

  2. (2)

    After a multicast member of P1 receives C-Update, it updates C1 with the content in C-Update.

  3. (3)

    The process ends.

5 Performance analysis

CCI aims to lower content communication costs and delays and enhance success rates, so these parameters are analyzed. According to the intra-subnet content communication algorithm, the intra-subnet content communication cost CIntra consists of the content request cost CIntra-Req and the content response cost CIntra-Rep, as shown in (2). As a consumer retrieves contents from the nearest anycast member, CIntra-Req and CIntra-Rep are shown in (3), where c is the cost of delivering a message between neighbors, lIntra is the distance from a consumer to the nearest anycast member and lD is the diameter of a subnet. The probability pk of k mobile nodes becoming anycast members follows the Poisson process [6], so lIntra is shown in (4), where m is the number of mobile nodes in a subnet and lC-j is the distance from a consumer to the jth anycast member. The content communication latency TIntra includes the content request latency TIntra-Req and the content response latency TIntra-Rep, as shown in (56), where t is the latency of transmitting a message between neighbors. In CCI, the content communication fails only if all the target members in the index table are unreachable. Therefore, the intra-subnet success rate SIntra is shown in (8) where n is the number of the anycast members in the index table and p is the probability of an anycast member being unreachable.

$$C_{Intra} = \, C_{Intra - Req} + C_{Intra - Rep}$$
(2)
$$C_{Intra - Rep} = C_{Intra - Req} = l_{Intra} \cdot c;{1} \le l_{Intra} \le l_{D}$$
(3)
$$l_{Intra} = \sum\limits_{k = 1}^{m} {p_{k} \cdot k \cdot \mathop {{\text{MIN}}}\limits_{{j{ = }1}}^{k} l_{{{\text{C - }}j}} }$$
(4)
$$T_{Intra} = \, T_{Intra - Req} + T_{Intra - Rep}$$
(5)
$$T_{Intra - Rep} = \, T_{Intra - Req} = l_{Intra} \cdot t$$
(6)
$$S_{Intra} = {1}{-}p^{n}$$
(7)
$$n = \sum\limits_{k = 1}^{m} {p_{k} \cdot k}$$
(8)

According to the inter-subnet content communication algorithm, the content communication cost CInter is comprised of the content request cost CInter-Req and the content response cost CInter-Rep, as shown in (9). The probability pj of j mobile nodes requesting a type of contents follows the Poisson process. If n’ mobile nodes request contents in parallel, the inter-subnet content communication process is performed only once. Therefore, CInter-Req and CInter-Rep are shown in (10, 11, 12, 13 and 14), where lInter is the distance from a consumer to the destination server, l is the distance from the source AR to the destination AR, lIntra-AR is the average distance from n’ consumers to the local AR, and li-AR is the distance from the ith consumer to the local AR. The inter-subnet content communication latency TInter includes the content request latency TInter-Req and the content response latency TInter-Rep, as shown in (1516). The inter-subnet success rate SInter is shown in (17).

$$C_{Inter} = \, C_{Inter - Req} + C_{Inter - Rep}$$
(9)
$$C_{Inter - Req} = (l_{Inter} \cdot c + \left( {n^{\prime} - {1}} \right) \cdot l_{Intra - AR} \cdot c)/n^{\prime}$$
(10)
$$n^{\prime} = \sum\limits_{{j{ = 1}}}^{m} {p_{j} \cdot j}$$
(11)
$$l_{Inter}=\,l_{Intra-AR}+l;\;\;\;1\leq_{Intra-AR}\leq l_D$$
(12)
$$l_{Intra - AR} = \sum\limits_{i = 1}^{n^{\prime}} {l_{i - AR} /n^{\prime}}$$
(13)
$$C_{Inter - Rep} = (l_{Inter} \cdot c + \left( {n^{\prime} - {1}} \right) \cdot l_{Intra - AR} \cdot c)/n^{\prime}$$
(14)
$$T_{Inter} = \, T_{Inter - Req} + T_{Inter - Rep}$$
(15)
$$T_{Inter - Req} = \, T_{Inter - Rep} = l_{Inter} \cdot t$$
(16)
$$S_{Inter} = \, S_{Intra}$$
(17)

Based on the content update algorithm, if the multicast members are within one subnet, the intra-subnet content update cost CIntra-Update and latency TIntra-Update are shown in (18, 19 and 20), where di is the distance from the ith multicast member to the nearest multicast member, lM is the distance from the multicast member announcing the updated content to the farthest multicast member, and lA-j is the distance from the announcing member to the jth multicast member. If the multicast members are located in q subnets, the inter-subnet content update cost CInter-Update and latency TInter-Update are shown in (21, 22 and 23). In (21, 22 and 23), lM-AR is the distance from an AR to the fartest multicast member, lmax is the distance from the subnet where the announcing multicast member is located to the farthest subnet including providers, and lj-AR is the distance from an AR to the jth multicast member.

$$C_{Intra - Update} = \sum\limits_{i = 1}^{n} {d_{i} \cdot c}$$
(18)
$$T_{Intra - Update} = \, l_{M} \cdot t;{ 1} \le l_{M} \le l_{D}$$
(19)
$$l_{M} = \sum\limits_{k = 2}^{m} {p_{k} \cdot k \cdot \mathop {{\text{MAX}}}\limits_{{j{ = }1}}^{{k{ - }1}} l_{{{\text{A - }}j}} }$$
(20)
$$C_{Inter - Update} = q \cdot C_{Intra - Update} + l_{max} \cdot c$$
(21)
$$T_{Inter - Update} = \left( {{2}l_{M - AR} + \, l_{max} } \right) \cdot t$$
(22)
$$l_{M - AR} = \sum\limits_{k = 1}^{m} {p_{k} \cdot k \cdot \mathop {{\text{MAX}}}\limits_{{j{ = }1}}^{k} l_{{j{\text{ - AR}}}} }$$
(23)

6 Performance evaluation

The random waypoint mobility model is adopted to evaluate CCI because it is the most common mobility model in networks [7]. In the model, a node randomly selects a destination, and moves towards the destination. Once the node arrives at the target, it chooses another destination after the pause time. The MAC protocol uses IEEE 802.11 [11], the transmission radius is 100 m, and the node population is 200, as shown in Table 4.

Table 4 Parameters

6.1 The effects of anycast member population

The effects of anycast member population on the content communication and content update are shown in Fig. 4. In the intra-subnet and inter-subnet content communications, with the growth in anycast member population, the area where anycast members spread augments and the probability of anycast members becoming unreachable greatly decreases, so the distance from a consumer to the nearest anycast member is reduced and the success rate is improved. As the intra-subnet communication is included in the inter-subnet communication, it has lower costs and delays, as shown in Fig. 4a–c. The growth in anycast member population increases the content update costs and delays because the number of multicast members is equal to the one of anycast members. The intra-subnet update costs and delays are smaller than the inter-subnet ones because in the inter-subnet update process the multicast members are distributed over multiple subnets, as shown in Fig. 4d, e.

Fig. 4
figure 4

Effects of anycast member population

6.2 The effects of speed

The effects of speed on the content communication and update are shown in Fig. 5. In the intra-subnet and inter-subnet communications, the growth in speed augments the area where anycast members spread, so the distance between a consumer and the nearest anycast member is reduced. This results in reduction in communication costs and latency. Since the probability of anycast members becoming unreachable is relatively steady, the success rate is stable. The inter-subnet communication is built on the intra-subnet communication, so it has greater costs and latency, as shown in Fig. 5a–c. The growth in speed expands the area where multicast members spread, so the content update cost and latency grow. The inter-subnet content update cost and latency are greater because the multicast members spread over multiple subnets, as shown in Fig. 5d, e.

Fig. 5
figure 5

Effects of speed

6.3 Comparison

CCI is compared to the anycast standard [16], Rowbee [9], the content-centric standard [12] and ACCM [22], as shown in Fig. 6. In CCI and the anycast standard, the content communication costs and delays reduce with the growth in provider population, and in Rowbee the costs and delays are steady. The primary reason is that Rowbee performs the content communications between a consumer and a target provider. CCI employs PRT to perform content communications, so the cost and latency are minimal. The success rates in CCI, the anycast standard and Rowbee are stable, as shown in Fig. 6a–c. With the increase in provider population, the content update costs and delays in CCI and ACCM grow whereas the ones in the content-centric standard are steady. However, the costs and latency in the content-centric standard are greater than the ones in CCI and ACCM as the content-centric standard employs flooding to perform the content update. In ACCM, each anycast member independently performs the content update while in CCI the anycast members achieve the content update via one content update procedure. Consequently, the content update cost and latency in CCI are smaller than the ones in ACCM, as shown in Fig. 6d, e.

Fig. 6
figure 6

Comparisons

7 Conclusion and future works

In this paper, we look into the advantages and limitations of the content-centric solutions. Based on the advantages, we exploit the content-centric mechanism to perform IoT-based content delivery. To overcome the limitations, we employ anycast to achieve the content-centric mechanism in IoT, and propose CCI to reduce content communication costs and improve success rates.

This work aims to perform efficient content communications in the Internet environments. In some cases, mobile nodes such as vehicles form an ad hoc network that might not support the Internet connectivity due to the lack of infrastructures such as AR. In our future work, we plan to exploit resources of mobile nodes to enhance efficiency of content communications in the network without the Internet support.