Asymptotically-Optimal Incentive-Based En-Route Caching Scheme
aa r X i v : . [ c s . N I] A ug Asymptotically-Optimal Incentive-Based En-routeCaching Scheme
Ammar Gharaibeh † , Abdallah Khreishah † , Issa Khalil ⋆ , Jie Wu ⋄ † New Jersey Institute of Technology, ⋆ Qatar Computing Research Institute, ⋄ Temple [email protected], [email protected], [email protected], [email protected]
Abstract —Content caching at intermediate nodes is a veryeffective way to optimize the operations of Computer networks,so that future requests can be served without going back tothe origin of the content. Several caching techniques have beenproposed since the emergence of the concept, including tech-niques that require major changes to the Internet architecturesuch as Content Centric Networking. Few of these techniquesconsider providing caching incentives for the nodes or quality ofservice guarantees for content owners. In this work, we presenta low complexity, distributed, and online algorithm for makingcaching decisions based on content popularity, while taking intoaccount the aforementioned issues. Our algorithm performs en-route caching. Therefore, it can be integrated with the currentTCP/IP model. In order to measure the performance of anyonline caching algorithm, we define the competitive ratio as theratio of the performance of the online algorithm in terms of trafficsavings to the performance of the optimal offline algorithm thathas a complete knowledge of the future. We show that under oursettings, no online algorithm can achieve a better competitiveratio than
Ω(log n ) , where n is the number of nodes in thenetwork. Furthermore, we show that under realistic scenarios,our algorithm has an asymptotically optimal competitive ratioin terms of the number of nodes in the network. We also studyan extension to the basic algorithm and show its effectivenessthrough extensive simulations. Index Terms —En-route caching, caching incentive, competitiveratio, asymptotic optimality, quality of service.
I. I
NTRODUCTION
Recently, content retrieval has dominated the Internet traffic.Services like Video on Demand accounts for 53% of the totalInternet traffic, and it is expected to grow even further to 69%by the end of 2018 [1]. Content Delivery Network (CDN)uses content replication schemes at dedicated servers to bringthe contents closer to the requesting customers. This has theeffect of offloading the traffic from the origin servers, reducingcontent delivery time, and achieving better performance, scal-ability, and energy efficiency [2], [3]. Akamai, for example,is one of the largest CDNs deployed, delivering around 30%of web traffic through globally-distributed platforms [4]. Theproblem with CDN is the necessity of dedicated servers andthat content replication is done offline.Several techniques have emerged to overcome the limitationof caching at dedicated servers. For example, Content CentricNetworking (CCN) [5] uses the content name instead of the IPaddress of the source to locate the content. This allows moreflexible caching at intermediate nodes. In order to implementCCN, major changes in the TCP/IP protocol needs to beperformed. When a client requests certain content, the client sends an
Interest Packet to all its neighbors, which in turn sendthe packet to all of their neighbors except the one where thepacket came from. The process continues until a node cachingthe desired content is found, which in turn replies with a
DataPacket containing the desired content.Clearly, caching a content will reduce the traffic on theupstream path, if the same content is being requested anothertime by a different client. Given the limited cache capacity, thequestions to answer become ‘What are the factors that affectachieving the maximum traffic savings?’and ‘Which contentsare to be cached in order to achieve the same objective?’Several studies try to answer the above questions. The workin [6] investigates the dependence of the caching benefit oncontent popularity, nodes’ caching capacities, and the distancebetween nodes and the origin server. The performance ofCCN has been evaluated in [7] under different topologies,by varying routing strategies, caching decisions, and cachereplacement policies. The results also show the dependenceof CCN performance on content popularity.Several techniques for content caching have been proposedin the literature. The work in [5] presents
Always Cache ,where a node caches every new piece of content under theconstraint of cache capacity. The authors in [8] provide apush-pull model to optimize the joint latency-traffic problemby deciding which contents to push (cache) on intermediatenodes, and which contents to pull (retrieve) from the originserver. Most Popular Caching caches a content at neighboringnodes when the number of requests exceeds some threshold[9].
ProbCache aims to reduce the cache redundancy bycaching contents at nodes that are close to the destination[10]. A cooperative approach in [11] leads to a node’s cachingdecision that depends on its estimate of what neighboringnodes have in their cache. A collaborative caching mechanismin [12] maximizes cache cooperation through dynamic requestrouting. In [13], nodes try to grasp an idea of other nodes’caching policies through requests coming from those nodes.Few works targeted the caching decision problem fromthe point of view of optimality, or providing incentives fornodes to cache. The work in [14] presents an offline solutionthrough dynamic programming for content placement for en-route caching. Authors in [15] characterize the optimal contentplacement strategy under offline settings, in which all futurerequests are known to all nodes in the network. The workof [16] presents an online solution but with no efficiency oroptimality proofs. Other works such as [17] and [18] considerncentives for nodes to cache. However, they provide high levelsolutions that do not scale well with large systems. The authorsin [18] consider a special case with only 3 ISPs.This paper provides a provably-optimal online solution forthe first time under a setting that brings incentives for thenodes to cache. In order to provide incentives for the nodes tocache, nodes have to charge content providers for caching theircontents. Adopting such charging policies forces the cachingnode to provide quality of service guarantees for contentproviders by not replacing their contents in the future, if thenode decides to cache their contents. Since the number ofcontents far exceeds the nodes’ cache capacities, and assumingthat the charging price for every piece of content is the same,then the node has no preference in caching one content overthe other, forcing the node to cooperate and apply our policythat achieves asymptotic optimality.Specifically, we make the following contributions: (1)
We design an online, low complexity, and distributedcaching decision algorithm that provides incentives for thenodes to cache, and quality of service guarantees for contentproviders. (2)
Our algorithm performs en-route caching andthus can be implemented without radical changes to theTCP/IP protocol stack. (3)
Under some realistic networksettings, We show that our algorithm is asymptotically (interms of the number of nodes in the network) optimal (in termsof traffic savings). (4)
Through extensive simulations, we showthat our algorithm outperforms existing caching schemes. Wealso show the effeciency of an extension of our algorithm withrespect to the existing caching schemes.The rest of the paper is organized as follows: Section IIstates the definitions and settings of our algorithm. SectionIII describes the algorithm and practical issues. Optimalityanalysis of the algorithm is presented in Section IV. Section Vdescribes the extensions of our algorithm. Section VI providessimulation results. We conclude the paper in Section VII.II. S
ETTINGS AND D EFINITIONS
In this Section, we provide the settings under which ouralgorithm takes place, followed by some necessary definitions.
A. Settings
A network is represented by a graph G ( V, E ) , where eachnode i ∈ V has a caching capacity of D i . If the node doesnot have caching capability, its caching capacity is set to0. Weights can be assigned to each link e ∈ E , but weconsider all links to have the same weight. The input consistsof a sequence of contents β , β , ..., β m , the j -th of which isrepresented by β j = ( S j , r j , T j ( τ )) , where S j is the sourcefor content β j , r j is the size of β j , and T j ( τ ) is the effectivecaching duration in which more requests are expected for β j when a request appears at time slot τ . For simplicity, weassume a slotted time system and that T j ( τ ) is an integermultiple of slots.For each content, we define the following values: (1) b i ( j ) : Number of hops on the path from node i to S j for β j . v v v v SubT ree SubT ree SubT ree b (1)=2, W ( τ, b (2)=1, W ( τ, SubT ree b (1)=3, W ( τ, b (2)=2, W ( τ, S S b (2)=1, W ( τ, b (1)=1, W ( τ, Fig. 1: Simple Caching Net-work. Fig. 2: A single node inCCN. (2) W i ( τ, j ) : The expected number of requests for β j to beserved from the cache at node i at time slot τ , if all of thecaching nodes cache β j . (3) t ( i, j ) : The time when a request for β j appears at node i . (4) E i ( τ, j ) : The total expected number of requests for β j to be served from the cache at node i per time slot τ . Weassume that E i ( τ, j ) is fixed ∀ τ ∈ { t , . . . , t + T j ( t ) } . (5) τ ( i, j ) : The time when β j is cached at node i . Forsimplicity, we denote this value hereafter by τ since the valuesof ( i, j ) can be inferred from the context. (6) d i ( τ, j ) : Number of hops from node i to the first nodecaching β j along the path to S j at time τ . We assume that ifnode i caches β j at time τ , then d i ( τ, j ) = d i ( τ , j ) , ∀ τ ∈{ τ , . . . , τ + T j ( τ ) } .Figure 1 shows a simple network to illustrate the afore-mentioned definitions. In this example, we have two contents β and β , originally stored on v and v , respectively. Thetriangles in the figure represent the subnetworks containingthe set of non-caching nodes connected to the caching node.The values of W i ( τ, j ) represent the expected number ofrequests for β j coming from the set of non-caching nodesin the subnetwork connected to node i .Before any requests for β j appears at any node, each node i will send its W i ( τ, j ) to all nodes on the path from node i tothe source of β j , S j . This process will lead to the calculationof the initial values of E i ( τ, j ) .For example, in Figure 1, before any request for β appearsat any node, E ( τ,
1) = W ( τ,
1) + W ( τ, , to a total valueof 6. This is because, starting from the initial configurationwhile investigating the caching of content β on node v , allthe requests for β coming from the subnetworks connected to v and v will be served from the cache of v , if we decide tocache β on v . Similarly, E ( τ,
1) = 9 . Later on, if v decidesto cache β , then W ( τ, will be subtracted from all nodesalong the path to S , until the first node caching β is reached.This is because none of these nodes will serve the requestsfor β coming from the subnetwork connected to v after thispoint. In Sections III and III-B3, we provide details for thedynamic calculation and initialization of E i ( τ, j ) , respectively.We define the total traffic savings of caching in the timenterval [0, t ] as: t X τ =0 n X i =1 m X j =1 E i ( τ , j ) d i ( τ , j ) I ( a i ( τ, j )) , (1)where I ( . ) is the indicator function and a i ( τ, j ) is the eventthat β j exists at node i at time τ . For example, referring toFigure 1, caching β on v alone for a single time slot willyield a saving of E ( τ, × d ( τ,
1) = (4 + 2) × .We define the relative load on a caching node i at time τ when β j arrives as λ i ( τ, j ) = X k : k 3) + (10 × 1) = 13 . Later on, if requests for X and Y appear at v , then v will get content X from v and content Y from v , gaining an additional savings of (1 × × 1) = 1 .On the other hand, if a request for Y is followed by a requestfor X at v , then v will cache the first content Y and v willcache content X , achieving a traffic saving at v for the nextpair of requests of (10 × × 1) = 31 . Later on, if requestsfor X and Y appear at v , then v will get content X from v and content Y from v , gaining an additional savings of (1 × 1) + (1 × 0) = 1 . So the online algorithm will achievean average traffic savings of .The offline algorithm knows in advance that content Y willbe requested and can reject the caching of content X at v and cache it at v to achieve a traffic saving of (10 × 3) +(1 × 1) + (1 × 1) + (1 × 0) = 32 . Routing to the Closest Caching Node) : If the first requestfor content X , followed by the first request for content Y ,arrives at v , then v will cache the first content X , and v will cache content Y , achieving a traffic saving at v for thenext pair of requests of (1 × 3) + (10 × 1) = 13 . Later on, ifrequests for X and Y appear at v , then v will get content X from v and content Y from v , gaining an additional savingsof (1 × 1) + (1 × 1) = 2 .On the other hand, if a request for Y is followed by a requestfor X at v , then v will cache the first content Y and v willcache content X , achieving a traffic saving at v for the nextpair of requests of (10 × × 1) = 31 . Later on, if requestsfor X and Y appear at v , then v will get content X from v and content Y from v , gaining an additional savings of (1 × 1) + (1 × 1) = 2 . Because of this, the online algorithmwill achieve an average traffic savings of .The offline algorithm knows in advance that content Y willbe requested and can reject the caching of content X at v ,and will cache it at v to achieve a traffic saving of (10 × 3) +(1 × 1) + (1 × 1) + (1 × 1) = 33 .The above examples show that the online algorithm cannotguarantee an optimal solution. In fact, we show that thereis an upper bound on the savings achieved by the onlinealgorithm when compared to the offline algorithm, and wedevelop an online algorithm that achieves that bound underrealistic settings. III. A LGORITHM In this Section, we present the Cost-Reward Caching (CRC)algorithm that achieves the optimal competitive ratio, alongwith some practical issues. We introduce the proof of opti-mality in the next Section. A. CRC Algorithm CRC takes advantage of en-route caching, i.e. , a request fora content is forwarded along the path to the content’s source,up to the first node that has the content in its cache. Thecontent then will follow the same path back to the requester.In CCN, when an interest packet for a new content arrivesat a node on a certain interface, the node will send theinterest packet using all other interfaces. For example, Figure2 shows a single node in CCN, where the numbers representthe interfaces of the node. When a request for β j arrives at thenode through interface number 2, and a match is not foundin neither the cache nor the Pending Interest Table (PIT), thenode will send the request on all interfaces except interfacenumber 2. Our algorithm uses en-route caching, so the newinterest packet is only forwarded on the single interface alongthe path to the content’s source.When a request for a content β j appears at a node i at time t , node i sends a small control message up to the first nodecaching β j along the path to the source of the content. Let w bethat first node, then node w replies with a message containing r j and the ID of node w . Every node u in the path from node w to node i stores a copy of the message, computes d u ( t , j ) ,and forwards the message to the next node along the path to node i . When Node i recieves the message, it makes a cachingdecision according to Algorithm 2. If node i decides to cache β j , it initializes a header field in the request packet to thevalue of E i ( τ, j ) . If node i decides not to cache, it initializesthe header field to 0.The request packet is then forwarded to the parent node z .The parent first subtracts the value stored in the header fieldfrom its own value of E z ( τ, j ) . Based on the new value of E z ( τ, j ) , if node z decides to cache β j , it adds its E z ( τ, j ) tothe value in the header field. Otherwise, node z adds 0. Therequest packet is then forwarded to node z ’s parent, and thewhole process is repeated until the request reaches the firstnode that has the content in its cache. The content then willfollow the same path back to the requester, and every node inthe path that decided to cache the content will store a copyin its cache. We describe the operation of our algorithm inAlgorithm 1. Algorithm 1 En-Route CachingA request for β j appears at node i at time t . header = 0 if β j ∈ Cache i ( t ) then Reply back with β j else Send a control message to retrieve r j , d i ( t , j ) w ← first node on the path to S j , where β j ∈ Cache w ( t ) Node w replies with r j and ID ∀ u ∈ P ath ( w, i ) , store r j , d u ( t , j ) for u k ∈ P ath ( i, w ) , k = 1 : Length ( P ath ( i, w )) do E u k ( t , j ) = E u k ( t , j ) − header Run Cost-Reward Caching algorithm if Caching Decision = TRUE then header = header + E u k ( t , j ) For example, Figure 3 shows a simple network where acontent β is originally stored at S . We removed the trianglesrepresenting the set of non-caching nodes for the sake ofclarity. If a request for β appears at v , node v will senda control message up to the first node caching β , which is S , and retrieves the values of r and d ( t , 1) = 1 . Basedon these values, if v decides to cache β , it will send therequest for β to its parent, which is S , with the headerfield initialized to E ( t , 1) = 14 . Node S will simply replywith a data packet containing β , and v will cache β . Lateron, if another request for β appears at v while β is stillcached at v , node v will send a control message up to thefirst node caching β , which is v . Node v sends a messagecontaining the values of r and its ID to node v . Node v will store the value of r , sets d ( t , j ) = 1 , and forwardsthe message to v . Node v in turn will store the value of r and set d ( t , j ) = 2 . Based on these values, if v decides tocache β it will send the request for β to its parent, which is v , with a header field initialized to E ( τ, 1) = 2 . When therequest reaches v , it will first subtract the value in the headereld from its own E ( τ, , so the new value of E ( τ, is E ( τ, 1) = E ( τ, − header = 4 − . The reason thatnode v has to subtract the header field from its own E ( τ, is because the requests for β coming from the subnetworkconnected to node v will not be served from the cache ofnode v since v decided to cache β . Based on these values,if v decides not to cache β , it will add 0 to the header fieldand forward the request to its parent v . Node v will simplyreply with a data packet containing β , and only v will cache β . ✈✵✈✶ ✈✷✈✸ ✈✹ ✈✺ ✈✻❙✶ ❲✻✭✜❀ (cid:0)✮ ❂ (cid:0)❲✺✭✜❀ (cid:0)✮ ❂ ✁❲✹✭✜❀ (cid:0)✮ ❂ (cid:0)❲✸✭✜❀ (cid:0)✮ ❂ ✂ ❲✷✭✜❀ (cid:0)✮ ❂ (cid:0)❲✶✭✜❀ (cid:0)✮ ❂ ✁ ❲✵✭✜❀ (cid:0)✮ ❂ ✄❊✻✭✜❀ (cid:0)✮ ❂ (cid:0)❊✺✭✜❀ (cid:0)✮ ❂ ✁❊✹✭✜❀ (cid:0)✮ ❂ (cid:0)❊✸✭✜❀ (cid:0)✮ ❂ ✂ ❊✷✭✜❀ (cid:0)✮ ❂ ✄❊✶✭✜❀ (cid:0)✮ ❂ ☎ ❊✵✭✜❀ (cid:0)✮ ❂ (cid:0)✄ Fig. 3: Simple Caching Netwrok 2.The core idea of the Cost-Reward Caching algorithm is toassign an exponential cost function for each node in terms ofthe node’s relative load. If the cost of caching a content isless than the traffic savings achieved by caching the content,the algorithm decides to cache. The choice of an exponentialcost function guarantees that the node’s capacity constraintsare not violated. We show that in the next Section.We define the cost of caching at a node i at time τ as: C i ( τ, j ) = D i ( µ λ i ( τ,j ) − , where µ is a constant defined in Section IV. The algorithmfor Cost-Reward Caching is presented in Algorithm 2. Algorithm 2 Cost-Reward Caching (CRC)New request for β j arriving at node i at time t ∀ τ ∈ { t , . . . , t + T j ( t ) } , Compute λ i ( τ, j ) , C i ( τ, j ) if P t + T j ( t ) τ = t E i ( τ, j ) d i ( t , j ) ≥ P t + T j ( t ) τ = t r j D i C i ( τ, j ) then Cache β j on node iτ ( i, j ) = t ( i, j ) ∀ τ ∈ { t , . . . , t + T j ( t ) } , λ i ( τ, j + 1) = λ i ( τ, j ) + r j D i else Do not cacheIn the algorithm, when new content that is not currentlycached by node i arrives at time t , node i computes therelative load ( λ i ( τ, j ) ) and the cost ( C i ( τ, j ) ) for every τ ∈{ t , . . . , t + T j ( τ ) } . This is because a currently cached contentmay be flushed before t + T j ( t ) , thus the relative load andthe cost should be adjusted for each time slot thereafter. For example, Figure 4 shows the relative load at a node forthe next 10 time slots starting from t , which is the arrival timeof a new content β . The node has three cached contents, β , β , and β that are going to be flushed at times τ = t + 3 , τ = t + 9 , and τ = t + 7 , respectively. When a β arrivesat this node at τ = t with T ( t ) = 10 , the cost calculationshould include three cached contents for 3 time slots, twocached contents for 4 time slots, one cached content for 2time slots, and 0 cached content for 1 time slot. If the totalsavings for caching β is greater than the aggregated cost, then β will be cached on node i , and the relative load is updatedto include the effect of β .Fig. 4: Relative Load Calculation Example. The figure showsthe state of the cache in one node when it considers a newcontent β for caching at time t and T ( t ) = 10 . We havethree contents, β , β , and β , that are to be flushed at times τ = t + 3 , τ = t + 9 , and τ = t + 7 , respectively. B. Practical Issues So far, we developed a fully distributed algorithm thatachieves asymptotic optimality in terms of traffic savings undersome realistic assumptions. Before providing the optimalityproof, we discuss in this section the practical issues that makethe algorithm easy to implement. The major issues in ouralgorithm include providing incentives for the caching nodesand QoS guarantees for the content providers, the adoptionof en-route caching, calculating the popularity expectation ofeach content, and updating the effective caching duration. 1) Providing Incentives and QoS Guarantees: In this work,the QoS measure is to guarantee the existence of the contentin the cache for a certain period of time, so the content will bedelivered quickly. In other words, once a caching node decidesto cache a certain content, the content will not be replacedduring the effective caching time of the content. Providingsuch a guarantee along with adopting an equal pay chargingpolicy for all contents will provide the caching nodes with thenecessary incentive to cache. Figure 5 shows the interactionbetween the ISP and the content provider.We assume that the caching nodes should adopt chargingpolicies, where every content provider is charged the same.This will prevent the caching node from preferring one contentover the other. Moreover, such charging policies will enforcethe caching nodes to cooperate and apply our CRC algorithm. 2) En-Route Caching: In en-route caching, a request for β j will be sent to the parent along the traditional path to the con-tent’s source, until the request reaches the first node cachingig. 5: Interaction between ISP and Content Provider.the content or the content’s source. The adoption of thisen-route caching reduces the amount of broadcasted Interest packets as opposed to the currently deployed schemes in CCN,where the interest packets are broadcasted to all neighbors.Moreover, using en-route caching prevents the reception ofmultiple copies of the requested content as opposed to CCN.Furthermore, our algorithm can be easily implemented in thecurrent Internet architecture. 3) Calculating the Initial Content Expectation Values: Foreach content, we start by building a caching tree rooted at thesource of the content. The caching tree is the union of thetraditional paths from the source of the content to all othernodes. We calculate the initial expectation value at a cachingnode for a certain content, when only node S j holds the j -th content, based on the content’s popularity and the numberof end nodes in the subnetwork connected to that node. Forexample, in Figure 1, W ( τ, j ) at node v for content β j isproportional to the content’s popularity and the number of endnodes in the subnetwork connected to node v .Algorithm 3 shows how to calculate E i ( τ, j ) for eachcontent at each caching node before the appearance of anyrequest at any node. The expectations are calculated in adistributed way, where each node only needs to know theexpectation values of its children in the caching tree. In thesimulation, we investigate the effect of having error marginsin the expectation calculation. Algorithm 3 Initial Content Popularity Expectation Calcula-tion for each content β j = { S j , r j , T j ( τ ) } do CachingT ree ( j ) ← build the traditional path tree rootedat S j for each caching node i ∈ CachingT ree ( j ) do Calculate W i ( τ, j ) Initialize E i ( τ, j ) ← W i ( τ, j ) for each node z ∈ Ancestor ( i ) in CachingT ree ( j ) do E z ( τ, j ) = E z ( τ, j ) + W i ( τ, j ) For example, referring back to Figure 3, and before a requestfor β appears at any node, the values of E i ( τ, j ) are calculatedas described in Algorithm 3. Take node v for example, then E ( τ, 1) = W ( τ, 1) + W ( τ, 1) + W ( τ, 1) = 4 . The finalexpectation values for the rest of the nodes are shown in thefigure. 4) Effective Caching Duration: The effective caching du-ration of a content depends on its arrival time. For example,most people read the newspaper in a period of two hours,so the caching duration should be two hours beginning atthe arrival of the first request. However, if a new request forthe newspaper arrives at a node in the middle of the rangeand was cached by the algorithm, then the caching durationshould be one hour. This requires the broadcast of the firstarrival time to all other nodes in the network. The additionaloverhead incurred by such broadcasting is negligible comparedto the reduction of the Interest packet broadcasting we achievethrough the adoption of en-route caching.IV. P ERFORMANCE A NALYSIS In this Section, we show that any online algorithm has acompetitive ratio that is lower bounded by Ω(log( n )) , thenwe show that our algorithm does not violate the capacityconstraints, and achieves a competitive ratio that is upperbounded by O (log( n )) under realistic settings. Proposition 1: Any online algorithm has a competitive ratiowhich is lower bounded by Ω(log( n )) . Proof: We show this proposition by giving an examplenetwork, such that the best online algorithm competitive ratiois lower bounded by Ω(log( n )) . Consider a network whichconsists of n + 2 nodes, as shown in Figure 6. All contentsare originally placed at node S , and node C is the only nodewith caching capability with a unit cache capacity. All othernodes can request the contents. We consider a 2-time slotssystem where all contents are to be requested at the beginningof each time slot, though sequentially. Sequentially means thatthe algorithm has to make a caching decision for a contentbefore considering the next one. v v v n SC Fig. 6: Network for Lower Bound Proof.Consider a log( n ) + 1 phases of contents. For each phase ≤ i ≤ log( n ) , we have /α identical contents, each withsize α ≪ and a caching time equal to 2 time slots. Contentsin the same phase are destined for the same i nodes. Thereason behind considering a 2-time slots system is that whena node caches a content, the traffic saving is considered forfuture requests.Let x i be the fraction of contents stored from phase i and G i be the traffic saving of the online algorithm gained fromphase i , then G i = x i i onsider the first k phases, then the online traffic saving ofthese k phases, denoted by G ( k ) , is G ( k ) = X G i = k X i =0 x i i The offline algorithm will cache the contents from phase k only, gaining a traffic saving of k Now consider the ratio of the online traffic saving to theoffline traffic saving: log n X k =0 G ( k )2 k = log n X k =0 k X i =0 x i i k = log n X i =0 log n X k = i x i i − k = log n X i =0 x i log n X k = i i − k ≤ ∗ ≤ Hence, there exist some k such that G ( k )2 k ≤ n . This meansthat the saving of the offline algorithm is at least within a log n factor of the savings achieved by any online algorithm.Before we start the proof of satisfying the capacity con-straints and the upper bound, we need to state the followingtwo assumptions: ≤ n . E i ( τ, j ) b i ( j ) r j T j ( τ ) ≤ F ∀ j, ∀ i = S j , ∀ τ, (2)and r j ≤ min D i log( µ ) ∀ j, (3)where F is any constant large enough to satisfy the assumptionin (2), µ = 2( nT F + 1) , n is the number of caching nodes,and T = max( T j ) , ∀ j . The assumption in (2) states that theamount of traffic savings for a content scales with the content’ssize and caching duration. The assumption in (3) requires thatthe caching capacity of any node should be greater than thesize of any content, which is a practical condition to assume.We start by proving that the CRC algorithm does notviolate the capacity constraints. After that, we show thatCRC achieves a O (log( n )) competitive ratio. In all of thesubsequent proofs, τ ∈ { t ( i, j ) , . . . , t ( i, j ) + T j ( t ( i, j )) } ,where t ( i, j ) is the arrival time of β j at node i . Proposition 2: The CRC algorithm does not violate thecapacity constraints. Proof: Let β j be the first content that caused the relativeload at node i to exceed 1. By the definition of the relativeload, we have λ i ( τ, j ) > − r j D i using the assumption in (3) and the definition of the costfunction, we get C i ( τ, j ) D i = µ λ i ( τ,j ) − ≥ µ − rjDi − ≥ µ − µ − ≥ µ − ≥ nT F Multiplying both sides by r j and using the assumption in (2),we get r j D i C i ( τ, j ) ≥ nT F r j ≥ E i ( τ, j ) b i ( j ) ≥ E i ( τ, j ) d i ( t , j ) From the definition of our algorithm, β j should not be cachedat node i . Therefore, the CRC algorithm does not violate thecapacity constraints.The next lemma shows that the traffic saving gained by ouralgorithm is lower bounded by the sum of the caching costs. Lemma 1: Let A be the set of indices of contents cachedby the CRC algorithm, and k be the last index, then µ ) X i,j ∈ A,τ [ E i ( τ, j ) d i ( t , j )] ≥ X i,τ C i ( τ, k + 1) (4) Proof: By induction on k . When k = 0 , the cache isempty and the right hand side of the inequality is 0. When β j is not cached by the online algorithm, neither side of theinequality is changed. Then it is enough to show, for a cachedcontent β j , that: µ ) X i,τ [ E i ( τ, j ) d i ( t , j )] ≥ X i,τ [ C i ( τ, j + 1) − C i ( τ, j )] since summing both sides over all j ∈ A will yield (4).Consider a node i , the additional cost incurred by caching β j is given by: C i ( τ, j + 1) − C i ( τ, j ) = D i [ µ λ i ( τ,j +1) − µ λ i ( τ,j ) ]= D i µ λ i ( τ,j ) [ µ rjDi − D i µ λ i ( τ,j ) [2 log µ rjDi − Since x − ≤ x for ≤ x ≤ and using the assumptionin (3) C i ( τ, j + 1) − C i ( τ, j ) ≤ D i µ λ i ( τ,j ) [ r j D i log µ ] ≤ r j log µ [ C i ( τ, j ) D i + 1] ≤ log µ [ r j D i C i ( τ, j ) + r j ] Summing over τ , i , and the fact that β j is cached, we get X i X τ [ C i ( τ, j + 1) − C i ( τ, j )] ≤ log µ X i X τ [ r j D i C i ( τ, j ) + r j ] ≤ log µ [ X i E i ( τ, j ) d i ( t , j ) + X i X τ r j ] ≤ µ X i E i ( τ, j ) d i ( t , j ) In the next lemma, d i ( τ, j ) is defined for the online algo-rithm. emma 2: Let Q be the set of indices of contents cachedby the offline algorithm, but not the CRC algorithm. Let l =arg max j ∈ Q ( C i ( τ, j )) . Then X i X j ∈ Q X τ [ E i ( τ, j ) d i ( t , j )] ≤ X i X τ C i ( τ, l ) Proof: Since β j was not cached by the online algorithm,we have: X τ E i ( τ, j ) d i ( t , j ) ≤ X τ r j D i C i ( τ, j ) ≤ X τ r j D i C i ( τ, l ) X i X τ E i ( τ, j ) d i ( t , j ) ≤ X i X τ r j D i C i ( τ, l ) Summing over all j ∈ Q X i X j ∈ Q X τ E i ( τ, j ) d i ( t , j ) ≤ X i X τ C i ( τ, l ) X j ∈ Q r j D i ≤ X i X τ C i ( τ, l ) Since any offline algorithm cannot exceed a unit relativeload, P j ∈ Q r j D i ≤ .Combining Lemma 1 and Lemma 2, we have the followinglemma. Lemma 3: Let A ∗ be the set of indices of the contentscached by the offline algorithm, and let k be the last index.Then: X i,j ∈ A ∗ ,τ E i ( τ, j ) d i ( t , j ) ≤ µ ) X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) Proof: The traffic savings of the offline algorithm is givenby: X i,j ∈ A ∗ ,τ E i ( τ, j ) d i ( t , j )= X i,j ∈ Q,τ E i ( τ, j ) d i ( t , j ) + X i,j ∈ A ∗ /Q,τ E i ( τ, j ) d i ( t , j ) ≤ X i,j ∈ Q,τ E i ( τ, j ) d i ( t , j ) + X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) ≤ X i,τ C i ( τ, l ) + X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) ≤ X i,τ C i ( τ, k + 1) + X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) ≤ (2 log µ + 1) X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) ≤ µ ) X i,j ∈ A,τ E i ( τ, j ) d i ( t , j ) Note that d i ( τ, j ) in the previous lemmas is defined bythe online algorithm. In order to achieve optimality using this proof technique, d i ( τ, j ) of the online algorithm shouldbe equal to d i ( τ, j ) of the offline algorithm. In the nexttwo corollaries, we show cases where d i ( τ, j ) of the onlinealgorithm is equal to d i ( τ, j ) of the offline algorithm. Corollary 1: When there is only one caching node in everypath, then d i ( τ, j ) of the online algorithm is equal to d i ( τ, j ) of the offline algorithm, and our algorithm achieves asymptoticoptimality. Corollary 2: When every node in the path shares the samecaching decision, then d i ( τ, j ) of the online algorithm is equalto d i ( τ, j ) of the offline algorithm, and our algorithm achievesasymptotic optimality.V. E XTENSION TO CRC A LGORITHM In this section, we provide an extension to the CRC algo-rithm. We show the effeciency of this extension with respectto currently deployed caching schemes through extensivesimulations. A. Replacement-CRC The basic CRC algorithm provides quality of service guar-antees for content providers by not replacing their contentsonce they are cached. Content providers, in return, are chragedto provide incentives for the caching nodes based on thecaching policy discussed in section III-B1. In this section, wepresent an extension for the basic CRC algorithm that allowscontent replacement.The settings for Replacement-CRC are the same as forthe basic CRC algorithm. However, there is no restriction onkeeping a content β j in the cache of node i for the wholeeffective caching duration time T j ( τ ) , as β j may be replacedby another content.We present the details of the Replacement-CRC algorithmin algorithm 4. Algorithm 4 Replacement-CRCA new request for β j appears at node i at time t ∀ τ ∈ { t , . . . , t + T j ( t ) } , Compute λ i ( τ, j ) , C i ( τ, j ) if P τ E i ( t , j ) d i ( t , j ) ≥ P τ r j D i C i ( τ, j ) then Cache β j at node iτ ( i, j ) = t ( i, j ) ∀ τ ∈ { t , . . . , t + T j ( t ) } , λ i ( τ, j + 1) = λ i ( τ, j ) + r j D i else ∀ β k ∈ Cache i ( t ) ∪ β j , ∀ τ ∈ { t , . . . , t + T k ( t ) } ,Compute λ ki ( τ, j ) = λ i ( τ, j ) + r j D i − r k D i C ki ( τ, j ) = D i [ µ λ ki ( τ,j ) − ] if λ ki ( τ, j ) ≤ then Dif f ( k ) = P τ E i ( τ , k ) d i ( τ , k ) − P τ r j D i C ki ( τ, j ) l = arg min k ( Dif f ) if l = j then Replace β l with β j ∀ τ ∈ { t , . . . , t + T j ( t ) } , λ i ( τ, j + 1) = λ li ( τ, j ) Algorithm 4 states that if the traffic savings gained bycaching a new content β j is greater than the caching costt node i , then the algorithm decides to cache. Otherwise, wecompare the difference between the traffic savings and thecaching costs for every β k ∈ Cache i ( τ ) , if it is replaced by β j without violating the capacity constraints. We then choosethe content with the minimum difference to replace with β j .VI. S IMULATION R ESULTS In this Section, we compare our CRC algorithm to some ofthe existing caching schemes. A. Settings We simulate the following caching schemes: (1) CRC: This scheme represents our basic algorithm. (2) CRC Version 2: This is similar to the CRC scheme,Version 1, except that we retrieve the content from the closestnode that has the content in its cache, not necessarily alongthe path to the content’s source. (3) All Cache: This scheme caches every new contentarriving at a caching node, as long as there is enough residualcapacity to cache the new content. (4) Random Caching Version 1: In this scheme, when arequest for a content arrives at node i , the caching probabilityof the content depends on the content’s popularity at node i .The popularity of a content β j at node i denoted by P op j , isdefined as the ratio of the number of requests for β j comingfrom the subnetwork connected to node i denoted by N ji ,to the total number of non-caching nodes in the subnetworkconnected to node i denoted by N i . Mathematically speaking, P op j = N ji /N i . If we choose a uniform random number x between [0,1], and x ≤ P op j , then the content β j is cachedif there is enough room for it in the cache. Otherwise, thecontent is not cached. (5) Random Caching Version 2: This is similar to RandomCaching Version 1, except that the caching probability of thecontent depends on the content’s popularity at node i , scaledby the fraction of the available residual capacity to the totalcapacity in the cache of node i denoted by f i , i.e. , if we choosea uniform random number x between [0,1], and x ≤ f i × P op j ,then the content β j is cached if there is enough room for it inthe cache. Otherwise, the content is not cached.For every caching node i in the network, we assign acache capacity D i that is uniformly chosen in the rangeof [750,1000] GB. The number of the non-caching nodesconnected to the caching node i is chosen uniformly at randomin the range of 10 to 90 nodes.For every content, we randomly chose one of the nodes toact as the source. Each content has a size chosen randomlyin the range of [100,150] MB. The starting effective time ofthe content is chosen randomly. The end time is also chosenrandomly within a fixed interval from the starting time. If theend time exceeds the end time of the simulation, it is adjustedto be equal to the end time of the simulation. The simulationinterval is chosen to be 1000 time slots. B. Results on Random topologies We start our evaluation on random backbone topologies, inwhich the caching nodes are generated as a random topology.We simulate the effect of the number of caching nodes n in the network for three cases, n = 30 , n = 50 , and n = 100 nodes. For each case we use 10 random topologies, and reportthe average performance. We fix the effective caching durationto 150 slots and the number of contents to 10000 contents tosolely show the effect of increasing the number of nodes onthe performance of the CRC algorithm. The results are shownin Figure 7(a).As can be seen from the figure, increasing the number of thecaching nodes will result in better performance in all schemessince more contents can be cached. Another observation fromthe figure is that the performance of CRC schemes increases ata higher rate than other schemes as we increase the number ofthe nodes in the network. This shows that our scheme greatlybenefits from adding more caching nodes to the network. Itis also aligned with the property of asymptotic optimality ofour scheme. On the other hand, not much improvement canbe seen from the other schemes when the number of nodes isincreased in the network.We simulate the effect of changing the number of contentsfrom 2000 to 10000. The results are averaged over 10 runs andare shown in Figure 7(b). The reason that the performance ofthe Cache All, Random 1, and Random 2 schemes increasesand then decreases is that there is a saturation point afterwhich the caches of the network cannot handle the requests.On the other hand, Our scheme reserves the cache capacityfor contents with higher traffic savings, and achieves animprovement of 2 to 3-fold in terms of traffic savings.Figure 7(c) shows the effect of the maximum effectivecaching duration for three cases, 50, 100, and 150 timeslots. In this scenario, the difference between the startand end times for each content is drawn randomly from { , . . . , max .caching duration } . The reason that the trafficsavings decrease as the maximum effective caching durationincreases after a certain point is that contents are cached for alonger period, so future contents are less likely to find enoughresidual capacity at the caching node.In all of the results in Figure 7, the performance of CRCVersion 2 is always less than the performance of CRC Version1. This is because CRC Version 2 deviates from the settingsunder which we achieve optimality.So far our performance measure was the traffic saving. InFigure 8, we measure the cost in terms of total number ofhops to satisfy all of the requests. The results in Figure 8 arefor a random topology with 100 caching nodes, the number ofcontents is 10000, and the maximum effective caching durationis 150 slots. The results in the figure show that even when wemeasure the performance in terms of the total cost, our schemereduces the cost by the range of 30% to 50%.In Figure 9 we measure the per topology improvementfor all schemes with respect to Random Caching Version 2scheme. Here, we measure the performance of all schemesfor 100 different random topologies. For each topology, we Number of Nodes (a) T r a ff i c S a v i ng s CRC1CRC2Cache AllRandom 1Random 2 2000 4000 6000 8000 100000123456789 x 10 Number of Contents (b) CRC1CRC2Cache AllRandom 1Random 2 50 100 15002468101214 x 10 Maximum Effective Caching Time (c) CRC1CRC2Cache AllRandom 1Random 2 Fig. 7: The Effects of Different Factors on the Performance of the Random Topologies. T r a ff i c C o s t CRC1CRC2Cache AllRandom1Random2 Fig. 8: Traffic cost. per Topology Improvement F ( x ) CRC1CRC2Cache AllRandom1 Fig. 9: The empirical CDF of the per topology improvementfor random topologies with respect to Random Caching Ver-sion 2.normalize the performance of all schemes with respect tothe performance of Random Caching Version 2. Denote theperformance of the CRC scheme and Random Caching Version2 scheme for topology s as P CRC ( top s ) and P Random ( top s ) ,respectively. We compute the normalized performance of CRCscheme with respect to Random Caching Version 2 scheme fortopology s as R CRC ( top s ) = P CRC ( top s ) /P Random ( top s ) .After that, the empirical CDF of the vector R CRC =[ R CRC ( top ) , R CRC ( top ) , . . . , R CRC ( top )] for the 100random topologies is plotted. We do the same process for theother two schemes. The results in the figure show that ourscheme experiences about 4 times the improvements as thatby Random Caching Version 2. C. Results on a Small-word generated topology In [21] it is shown that the Internet topology exhibitsa small-world structure defined in [22]. In this Section weperform simulations based on the small world-structure.Figure 10 is similar to Figure 7, but for the small-worldtopologies. The results follow the same trend as the resultsfor the random topologies except for two differnces. Thefirst difference is that is that CRC Version 1 achieves betterperofrmance than CRC Version 2 as we increase the numberof nodes. The second difference is that all of the schemesperformances increase with increasing the effective cachingtime. One of the reason is due to the sparsity of the small-world topologies, which results in the fact that the requestsare distributed over multiple domains inside the topology. D. Results for Replacement-CRC We compare the performance of Replacement-CRC againstthe following schemes: (1) Least Recently Used (LRU): In this scheme, when arequest for a content β j appears at node i , Least RecentlyUsed replacement is performed at all nodes along the pathfrom node i to the source of the content β j . (2) Random Replacement: In this scheme, when a requestfor a content β j appears at node i , every node along the pathfrom node i to the source of the content β j will randomlychoose a cached content to be replaced with β j , as long asthe capacity constraints are satisfied. (3) CCN: This scheme represents the Content Centric Net-work as described in [5], where a request for a content isbroadcasted until the closest node with a copy of the contentin its cache is found. The content then follows the path fromthe closest node to the requester, and all nodes along thatpath caches the content as long as the capacity constraintsare satisfied, or performs replacement using LRU if contentreplacement is needed.We use the same settings as described in Section VI-A, andwe simulate the effect of increasing the number of cachingnodes in the network, the effect of increasing the number ofcontents, and the effect of increasing the cache capacity of thecaching nodes. The results are shown in Figure 11. Number of Nodes (a) T r a ff i c S a v i ng s CRC1CRC2Cache AllRandom 1Random 2 2000 4000 6000 8000 100000123456789 x 10 Number of Contents (b) CRC1CRC2Cache AllRandom 1Random 2 50 100 15002468101214 x 10 Maximum Effective Caching Time (c) CRC1CRC2Cache AllRandom 1Random 2 Fig. 10: The Effects of Different Factors on the Performance of the Small-world Topologies. 30 40 50 60 70 80 90 10000.511.522.533.5 x 10 Number of Nodes(a) N u m b e r o f H op s CRCLRURandomCCN 2000 4000 6000 8000 100000123456789 x 10 Number of Contents(b) CRCLRURandomCCN 0 500 1000 1500 2000024681012 x 10 Average Cache Size (GB)(c) CRCLRURandomCCN Fig. 11: The Effects of Different Factors on the Performance of Different Replacement Schemes.Figure 11(a) shows the performance of all schemes as weincrease the number of the caching nodes in the network.From the figure, the performance of all schemes increaseswith increasing the number of caching nodes. This is be-cause adding more caching nodes will increase the overallcaching capacity of the network, which results in more cachedcontents. Moreover, as the topology grows with adding morenodes, the average distance between the nodes in the netwrokincreases. The figure shows that Replacement-CRC outper-forms the existing replacement schemes by 30% to 60%.Figure 11(b) shows the performance of all schemes as weincrease the number of contents. As we increase the numberof contents, the performance of all schemes increases sincemore contents are available for caching. Replacement-CRCacheives better perofrmance than the other schemes, since itis able to identify the contents with higher traffic savings andthe replacement is done less frequently than the other schemes.In Figure 11(c), we investigate the effect of increasing thecaching size of the caching nodes on the performance ofall schemes. We increased the caching size of each nodeuntil we reach a saturation point, where all of the nodesare able to cache all of the contents without the need forreplacement. At this saturation point, all schemes acheivesthe same traffic savings. Another observation from the figureis that the performance of Replacement-CRC at 500GB issimilar to the performance of the other schemes at 1500GB.This means that Replacement-CRC can achieve the same performance of the other schemes with only 30% of the cachecapacity. VII. C ONCLUSION Caching at intermediate nodes has the advantage of bringingthe contents closer to the users, which results in traffic offload-ing from the origin servers and lower delays. To acheive this,caching schemes such as en-route caching and CCN have beeninvestigated. Unlike CCN, the use of en-route caching does notrequire major changes to the TCP/IP model. Previous workshave studied en-route caching under offline settings to acheivethe optimal content placement strategy. In this work, we studythe framework of en-route caching under online settings.Under this framework, we characterize the fundamentallimit for the ratio of the performance of the optimal offlinescheme to that of any online scheme. The offline schemehas a complete knowledge of all of the future requests, whilethe online scheme does not possess such knowledge. We alsodesign an efficient online scheme and prove that the developedonline scheme achieves optimality as the number of nodesin the network becomes large. Moreover, we introduce anextension to the algorithm. Our simulation results affirm theefficiency of our scheme and its extension. Our future workincludes the investigation of network coding [23], [24] underour settings. CKNOWLEDGEMENT This research is supported by NSF grant ECCS-1331018.R EFERENCES[1] V. Cisco, “Cisco Visual Networking Index: Global Mobile Data TrafficForecast Update, 2013–2018,” Cisco Public Information , 2014.[2] A. Vakali and G. Pallis, “Content Delivery Networks: Status andTrends,” Internet Computing, IEEE , vol. 7, no. 6, pp. 68–74, 2003.[3] A.-M. K. Pathan and R. Buyya, “A Taxonomy and Survey of ContentDelivery Networks,” Grid Computing and Distributed Systems Labora-tory, University of Melbourne, Technical Report , 2007.[4] E. Nygren, R. K. Sitaraman, and J. Sun, “The Akamai Network: APlatform for High-Performance Internet Applications,” ACM SIGOPSOperating Systems Review , vol. 44, no. 3, pp. 2–19, 2010.[5] V. Jacobson, D. K. Smetters, J. D. Thornton, M. F. Plass, N. H. Briggs,and R. L. Braynard, “Networking Named Content,” in Proceedings ofthe 5th international conference on Emerging networking experimentsand technologies . ACM, 2009, pp. 1–12.[6] I. Psaras, R. Clegg, R. Landa, W. Chai, and G. Pavlou, “Modelling andEvaluation of CCN-caching Trees,” NETWORKING 2011 , pp. 78–91,2011.[7] D. Rossi and G. Rossini, “Caching performance of content centric net-works under multi-path routing (and more),” Relat´orio t´ecnico, TelecomParisTech , 2011.[8] X. Guan and B.-Y. Choi, “Push or pull? toward optimal content deliveryusing cloud storage,” Journal of Network and Computer Applications ,2013.[9] C. Bernardini, T. Silverston, and O. Festor, “MPC: Popularity-BasedCaching Strategy for Content Centric Networks,” in Communications(ICC), 2013 IEEE International Conference on . IEEE, 2013, pp. 3619–3623.[10] I. Psaras, W. K. Chai, and G. Pavlou, “Probabilistic In-Network Cachingfor Information-Centric Networks,” in Proceedings of the second editionof the ICN workshop on Information-centric networking . ACM, 2012,pp. 55–60.[11] M. Fiore, F. Mininni, C. Casetti, and C. Chiasserini, “To Cache or NotTo Cache?” in INFOCOM 2009, IEEE . IEEE, 2009, pp. 235–243.[12] J. Dai, Z. Hu, B. Li, J. Liu, and B. Li, “Collaborative HierarchicalCaching with Dynamic Request Routing for Massive Content Distribu-tion,” in INFOCOM, 2012 Proceedings IEEE . IEEE, 2012, pp. 2444–2452.[13] N. Laoutaris, G. Zervas, A. Bestavros, and G. Kollios, “The CacheInference Problem and its Application to Content and Request Routing,”in INFOCOM 2007. 26th IEEE International Conference on ComputerCommunications. IEEE . IEEE, 2007, pp. 848–856.[14] A. Jiang and J. Bruck, “Optimal Content Placement For En-Route WebCaching,” in Network Computing and Applications, 2003. NCA 2003.Second IEEE International Symposium on . IEEE, 2003, pp. 9–16.[15] J. Llorca, A. M. Tulino, K. Guan, J. Esteban, M. Varvello, N. Choi,and D. C. Kilper, “Dynamic In-Network Caching for Energy EfficientContent Delivery,” in INFOCOM, 2013 Proceedings IEEE . IEEE, 2013,pp. 245–249.[16] E. J. Rosensweig and J. Kurose, “Breadcrumbs: efficient, best-effortcontent location in cache networks,” in INFOCOM 2009, IEEE . IEEE,2009, pp. 2631–2635.[17] J. Rajahalme, M. S¨arel¨a, P. Nikander, and S. Tarkoma, “Incentive-Compatible Caching and Peering in Data-Oriented Networks,” in Pro-ceedings of the 2008 ACM CoNEXT Conference . ACM, 2008, p. 62.[18] T.-M. Pham, S. Fdida, and P. Antoniadis, “Pricing in Information-CentricNetwork Interconnection,” in IFIP Networking Conference, 2013 . IEEE,2013, pp. 1–9.[19] S. Albers and H. Fujiwara, “Energy-Efficient Algorithms for Flow TimeMinimization,” ACM Transactions on Algorithms (TALG) , vol. 3, no. 4,p. 49, 2007.[20] P. Jaillet and M. R. Wagner, “Generalized Online Routing: New Com-petitive Ratios, Resource Augmentation, and Asymptotic Analyses,” Operations research , vol. 56, no. 3, pp. 745–757, 2008.[21] T. Bu and D. Towsley, “On Distinguishing between Internet PowerLaw Topology Generators,” in INFOCOM 2002. Twenty-First AnnualJoint Conference of the IEEE Computer and Communications Societies.Proceedings. IEEE , vol. 2. IEEE, 2002, pp. 638–647.[22] D. J. Watts and S. H. Strogatz, “Collective dynamics of small-worldnetworks,” nature , vol. 393, no. 6684, pp. 440–442, 1998. [23] P. Ostovari, J. Wu, and A. Khreishah, “Network coding techniques forwireless and sensor networks,” in The Art of Wireless Sensor Networks .Springer, 2014, pp. 129–162.[24] A. Khreishah, I. Khalil, and J. Wu, “Distributed network coding-basedopportunistic routing for multicast,” in