<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="no"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="info" docName="draft-xie-icnrg-coordinated-caching-forwarding-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902
     pre5378Trust200902
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="Coordinated Forwarding and Caching">Coordinated Forwarding and Caching in Information-Centric Networks</title>

    <author fullname="Haiyong Xie" initials="H." surname="Xie">
      <organization>Huawei &amp; USTC</organization>
      <address>
        <postal>
          <street>2330 Central Expy</street>

          <!-- Reorder these if your country does things differently -->

          <city>Santa Clara</city>

          <region>CA</region>

          <code>95050</code>

          <country>USA</country>
        </postal>

        <phone></phone>

        <email>Haiyong.xie@huawei.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    
    <author fullname="Yi Sun" initials="Y." surname="Sun">
      <organization>Institute of Computing Technology, Chinese Academy of Sciences</organization>
      <address>
        <postal>
          <street>No.6 Kexueyuan South Road</street>

          <!-- Reorder these if your country does things differently -->

          <city>Beijing</city>

          <region>CA</region>

          <code>100190</code>

          <country>China</country>
        </postal>

        <phone>+86 10 62600743</phone>

        <email>sunyi@ict.ac.cn</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    
    <author fullname="Yunfei Zhang" initials="Y." surname="Zhang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country></country>
        </postal>

        <phone></phone>

        <email></email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
   
    <author fullname="Haibin Zhai" initials="H." surname="Zhai">
      <organization>Institute of Computing Technology, Chinese Academy of Sciences</organization>
      <address>
        <postal>
          <street>No.6 Kexueyuan South Road</street>

          <!-- Reorder these if your country does things differently -->

          <city>Beijing</city>

          <region></region>

          <code>100190</code>

          <country>China</country>
        </postal>

        <phone>+86 10 62600706</phone>

        <email>zhaihaibin@ict.ac.cn</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    
    <author fullname="Hanwen Zhang" initials="H." surname="Zhang">
      <organization>Institute of Computing Technology, Chinese Academy of Sciences</organization>
      <address>
        <postal>
          <street>No.6 Kexueyuan South Road</street>

          <!-- Reorder these if your country does things differently -->

          <city>Beijing</city>

          <region></region>

          <code>100190</code>

          <country>China</country>
        </postal>

        <phone>+86 10 62600743</phone>

        <email>hwzhang@ict.ac.cn</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
   
    <date year="2013" />

    <!-- If the month and year are both specified and are the current ones,
    xml2rfc will fill in the current day for you. If only the current year is
    specified, xml2rfc will fill in the current day and month for you. If the
    year is not the current one, it is necessary to specify at least a month
    (xml2rfc assumes day="1" if not specified for the purpose of calculating
    the expiry date).  With drafts it is normally sufficient to specify just
    the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Network Working Group</workgroup>
    <!--workgroup>Information-Centric Networking Research Group</workgroup-->

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
    If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>Information-Centric Networking</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

	<abstract>
		
		<t>
			
			Content caching plays an important role in Information-Centric
			Networking (ICN).  Many of current ICN designs adopt a limited,
			en-route hierarchical caching mechanism; additionally, caching and
			forwarding are largely uncoordinated in these designs. This draft
			describes a coordinated caching and forwarding design to improve
			content access cost and cache miss rate of ICN. 

		</t>
    </abstract>

  </front>

  <middle>


<section anchor="intro" title="Introduction">

	<t>
		
		The concept of Information-Centric Networking (ICN) has emerged and
		become a significant part of the world-wide research efforts on Future
		Internet architectures. 
		
		The principal paradigm of ICN is significantly different from the
		host-to-host communication model in the current Internet architecture.
		Instead, ICN focuses on information objects, their properties, and
		receiver interest in the network to achieve efficient and reliable
		distribution of such objects.  
		
		In ICN, content caching is becoming an inherent capability of network
		elements such as routers.  With routers being able to cache contents in
		ICN, it is likely that not only the content distribution costs incurred
		to the network but also the quality of service experienced by end users
		are significantly improved. 

	</t>
   	
	<t>
		
		Without specifying the details of content caching, the existing ICN
		architectures are designed to allow flexible design and implementation
		of new caching schemes. However, they also pose new challenges to
		caching schemes; in particular, it remains unclear how content caching
		should be provisioned (independently or collaboratively), and how it
		should be implemented efficiently.
	
	</t> 

	<t>
		
		Many of current ICN designs adopt a hierarchical caching mechanism
		allowing only limited collaboration in content caching. More
		specifically, for a given content, caching in many ICN designs takes
		place only at en-route routers (i.e., routers on the paths between a
		requesting host and one or multiple content origins), and thus forms a
		hierarchical caching mechanism. An en-route router that has the
		requested content should directly respond with the content from its
		local content cache and suppress further forwarding the request to the
		next router in the routing hierarchy. 
		
		For instance, Content-Centric Network (CCN) is an example of ICN; CCN
		adopts a name-based routing architecture, advocating a
		``host-to-content'' communication model which differs from the
		``host-to-host'' model in Internet. In CCN, where content comes from is
		no longer important to the requesting host. Additionally, not only
		en-route routers but also routers in the same administrative domain
		(particularly those nearby en-route routers) could have possibly cached
		a requested content. These observations suggest that collaborative
		caching beyond the current limited hierarchical mechanism is feasible
		and could be beneficial.

	
	</t>

	<t>
		
		Collaborative caching has drawn much attention and some have become
		commercially successful since more than a decade ago. This leads us to
		believe that collaborative caching in ICN is a key to success in that
		the network performance could be significantly improved by letting
		routers collaborate with each other.  

	</t>
	<t>
		However, collaborative caching in ICN, if not well designed, could
		significantly increase the communication overhead. 
		
		For instance, control messages exchanged among routers, as an example
		of such overhead, are necessary to enable collaborations. Such messages
		normally contain information about what contents are stored in a
		particular router; due to the enormously large number of distinct
		contents, such messages could consume a significant portion of the
		network bandwidth. 
		
		Additionally, the extra latency of exchanging such messages may further
		slow down the collaborative decision making process and thus reduce the
		effectiveness. 
		
		A naive approach to collaborative caching is to adopt a broadcast
		mechanism, i.e., each request is forwarded to all routers and only
		those with the requested content respond with the data. However, such
		an approach is too costly and inefficient. 
		
	</t>
	<t>
		A key challenge to collaborative caching in ICN is how to make routers
		know what contents are available from other collaborative routers in an
		economic and efficient manner. Furthermore, since routers have
		knowledge about such availability information, routers should leverage
		it when making forwarding decisions; namely, forwarding and caching
		could be coordinated and collaborative to further optimize the network
		performance.
		
	</t>

	<t>
		
		We will go beyond the en-route caching model and propose a novel
		name-based distributed coordinated forwarding and caching design for
		ICN in this draft.
	
	</t>
 
</section>  <!-- intro -->


<section anchor="overview" title="Coordinated Forwarding and Caching">

	<t>
		
		A content router with coordinated forwarding and caching is
		illustrated in the following figure.  
		
		A new component called the Availability Info Base (AIB for short), is
		introduced to coordinate forwarding and caching in content routers.
		AIB keeps track of content availability information. More specifically,
		AIB can be thought of as a table, where each entry has two columns,
		Name and RouterID, suggesting that a given named content is available
		from a router. 
		
		Note that we require that each router in the network should have a
		name and routers' names are propagated through the network via
		intradomain routing protocol such as OSPF. As a result, routers' names
		are treated in the same way as content names and put in FIB. 
		
	</t>

	<t>
		For instance, the following figure shows an example of CCN content
		router architecture with coordinated forwarding and caching. The
		outbound face to reach Router R3 is face 3, and content /c/d is
		available from R3, as shown in the following figure. 
	
	</t>

 
	   <figure src='content-router.png' alt='[Content Router]'>
			<!--preamble>This is the preamble.</preamble-->
			<artwork>
+--------------------------------------------------------------------+
|         Content Store                 Forwarding Info Base         |
|          Name    Data              Name  Destination List   Face 0 |
|    +-->+-----+----+        +---> +-------+---------------+  +---+  |
|    |   |...  |... |        |     |  ...  |      ...      |  |   |---->  
|    |   |-----+----|        |     |-------+---------------|  |   |  |
|    |   |/a/b |    |        |     |  /e/f |       2       |  |   |&#9001;----  
|    |   |-----+----|        |     |-------+---------------|  |   |  |
|    |   |...  |... |        |     |  ...  |      ...      |  +---+  |
|    |   +-----+----+        |     |-------+---------------|         |
|    |                       |     |   R3  |       3       |  Face 1 |
|    |                       |     |-------+---------------|  +---+  |
|    |                       |     |  ...  |      ...      |  |   |---->  
|    |                       |     +-------+---------------+  |   |  |
|    |           Index       |                                |   |&#9001;----  
|    |          Ptr Type     |                                |   |  |
|    |        +---+-----+    |                                +---+  |
|    +--------| * |  CS |    |                                       |
|             |---+-----|    |                                       |
|    +--------| * | PIT |    |                                Face 2 |
|    |        |---+-----|    |                                +---+  |
|    |      +-| * | AIB |    |                                |   |---->  
|    |      | |---+-----|    |                                |   |  |
|    |      | | * | FIB |----+                                |   |&#9001;----  
|    |      | +---+-----+                                     |   |  |
|    |      +------------------+                              +---+  |
|    |  Pending Interest Table |      Availability Info Base         |
|    |   Name  Requesting Faces|       Name      Router ID    Face 3 |
|    |   +----+-------------+  +--->+-------+---------------+ +---+  |
|    +-->|... |      ...    |       |  ...  |      ...      | |   |---->  
|        |----+-------------|       |-------+---------------| |   |  |
|        |/e/f|      0,1    |       |  /c/d |       R3      | |   |&#9001;----  
|        |----+-------------|       |-------+---------------| |   |  |
|        |... |      ...    |       |  ...  |      ...      | +---+  |
|        +----+-------------+       +-------+---------------+        |
+--------------------------------------------------------------------+
Figure 1: Content router with coordinated forwarding and caching
			</artwork>
			<!--postamble>This is the postamble.</postamble-->
	</figure> 

	<t>
		
		Each content router periodically announces the pairwise link cost and
		coordinated forwarding/caching related metrics via OSPF or ISIS
		intradomain routing protocols.  Each router also measures the ranking
		of incoming Interests, namely, examine the received Interests from the
		users, and generates its local ranking sequence of the most popular
		contents. Each router implements the coordinated forwarding and
		caching mechanism, namely, a distributed mechanism to make joint
		decisions for forwarding and caching. Additionally, each router
		measures the miss rate of the interests in order to further improve the
		caching/forwarding efficiency.
	
	</t>

	<t>
		
		Upon receiving an Interest, a router first checks whether the content is available
		and fresh in its local CS.

		<list style="symbols">
			<t>
				
				If yes, the router responds with the locally cached content.
			</t>

			
			<t>
				Otherwise, it looks up the Pending Interest Table (PIT), and
				either this Interest should not be forwarded if it is already
				pending in PIT, or it should be forwarded and PIT be updated
				accordingly. In the latter case, the router looks up AIB to
				check whether the content is available from other collaborative
				routers.  If not, the Interest should be forwarded using the
				default policy in information-centric networks (e.g., look up
				the outbound face in FIB and forward to the designated face; if
				FIB lookup fails, use a broadcast-like approach to forward the
				Interest).  Otherwise, the Interest should be forwarded to the
				designated collaborative router.  In order to do so, the router
				needs to look up FIB to determine the outbound face to reach
				the designated router. Note that most likely retrieving
				contents from collaborative routers within an autonomous system
				saves a noticeable time than getting it from the origin, as the
				latter typically requires traversing multiple autonomous
				systems and multiple interdomain links.  
			</t>
		</list> 
	</t>

</section>  <!-- overview -->


<section anchor="ranking" title="Popularity Ranking Based Coordination">
	<section anchor="ranking-design" title="Popularity Ranking">

		<t>

			To ease the description, we introduce the following notations. The
			network consists of N content routers. Each router i has a local
			Content Store (CS) that can cache up to Ci content objects
			(``contents'' for short). The maximum size of each content is u. It
			is a common practice that contents are chunked into pieces. Suppose
			that each piece fits one cache unit (i.e., the size of each piece
			is no greater than u). Then, the entire network can cache at most
			C*u of contents, where C = C1 + ... + CN. Users send requesting
			packets (e.g., Interest packets in CCN).
			
			We use a ranking sequence {r1, r2, ..., rC} to denote the most
			popular C contents, sorted in descending order of popularity. This
			ranking sequence can be measured in real time as routers receive
			Interests.  All routers may not see the same distribution of
			content popularity, e.g., the ranking sequence {r1, r2, ..., rC}
			measured by different routers have a certain percentage of
			mismatches or shifts, refer to as the popularity inconsistency.
		</t>
   </section>  <!-- CFCD -->

	<section anchor="optimal-caching" title="Cost-Based Optimal Content Caching">
		<t>

			Each content router keeps track of the most popular C contents.
			The coordination should be provisioned in such a way that the
			contents should be optimally distributed (cached) by the N routers,
			whose sizes are C1, C2, ...,CN, so that the average content access
			cost can be minimized in the network.

			We denote by cost_i the cost of accessing a given content at router
			i.  Without loss of generality, assume that after sorting, cost_1 &le;
			cost_2 &le; ... &le; cost_N. Also, suppose the ranking sequence is {r1,
			r2, ...rC} in descending order of popularity. The optimal way to
			distributing (caching) contents (i.e., minimizes the average cost
			of accessing the most popular C contents in the network) is to let
			the more popular content be cached at a place that has a lower
			cost, i.e., router 1 caches r1, ..., rC1 , router 2 caches rC1+1,
			..., rC1+C2, and so on (see Theorem 1 in <xref target="GXS12"/>).

		</t>

		<t>

			An example of delay-based cost metric can be defined for CCN as
			follows.  Let I_i denote the average number of interests received
			by router i and d_ij denotes the link cost of nodes i and j (d_ij
			becomes the cost of accessing content from the local Content Store
			when i = j).  Such costs can correspond to either intradomain
			routing weights or other performance-related metrics such as
			distance and latency.  Then, for any cache unit in router i, the
			average cost of accessing this content requested by users is cost_i
			= (I_1 * d_1i + ... + I_N * d_Ni) / (I_1 + ... + I_N).

		</t>
		
		<t>
			
			There are many ways to obtain the cost information. For instance,
			with the help of intradomain routing protocol, topological
			information is generally available to each router; each router can
			calculate the average cost for all collaborative routers in the
			network and sort all routers using these values. 
			
			For any cache unit in router, the average cost of accessing a
			content requested by users is the weighted sum of pair-wise access
			costs from all routers.  Access costs can correspond to either
			intradomain routing weights or other performance-related metrics
			such as distance and latency. Then, the optimal solution that
			minimizes the average cost of accessing the most popular contents
			in the network is to let the more popular content be cached at a
			place that has a lower cost, and the less popular contents by the
			router with a larger cost. Therefore, for any top popular content,
			each router knows not only which contents it should keep in its
			local Content Store, but also which collaborative router it can
			request this content from, if not locally available. Such
			availability information for the top popular contents is stored in
			AIB.
		
		</t>

   </section>  <!-- CFCD -->
   <section anchor="CFCExample" title="An Example of Cost-based Optimal Coordination">
	   
	   <t> 
		   
		   The coordinated forwarding and caching design is illustrated using
		   a simple example shown in the following figure. In the example,
		   there are three coordinated routers R1, R2 and R3. These routers
		   can cache 10 contents in total (the size of these three caches are
		   3, 4, and 3, respectively). 
		   
		   The most popular 10 contents measured by these routers are
		   consistent.  Suppose cost_i is the average cost of accessing this
		   content requested by users for any cache unit in router i, and
		   cost_1 >= cost_2 >= cost3. The most popular 3 contents should be
		   cached in router R3, the next 4 contents should be cached in R2, and
		   the next 3 contents should be cached in R1. 
		   
		   As shown in the figure, for any incoming Interest requesting for the
		   most popular contents, AIB tells where it should be forwarded to
		   (the content is either available from the router's local CS or other
		   collaborative routers).

	   </t>

<figure src='v-arch.png' alt='[The Vertical Architecture]'>
			<!--preamble>This is the preamble.</preamble-->
			<artwork>
			.-------------------------------------.
			|	   Availability Info Base     |	
			|         .-------------------.       |	
			|    Name |a|b|c|d|e|f|g|h|i|j|	      |	
			| RouterID|3|3|3|2|2|2|2|1|1|1|	      |	
			|	  .------|-|-|-|------.	      |	
			|		 | | | |	      |	
			|		 | | | |      CS      |	
			|		 | | | |    +---+     |	
			|		 | | | ---->| g |     |
			|		 | | |      |---|     |	
			|		 | | ------>| h |     |	
			|		 | |	    |---|     |	
			|		 | -------->| e |     |	
			|		 |  	    |---|     |	
		------->|		 ---------->| d |     |	
		|	|	R2		    +---+     |	
		|	.-------------------------------------.
		|				^	
		V				|
.-------------------------------------.		|
|	   Availability Info Base     |		|
|         +-------------------+       |		|
|    Name |a|b|c|d|e|f|g|h|i|j|	      |		|
| RouterID|3|3|3|2|2|2|2|1|1|1|	      |		|
|	  +--------------|-|-|+	      |		|
|		         | | |	      |		|
|		  CS     | | |        |		|
|		 +---+   | | |        |		|
|		 | h |&#9001;--  | |        |		|
|		 |---|     | |	      |		|
|		 | i |&#9001;----| |        |		|
|		 |---|       |	      |		|
|		 | j |&#9001;------|        |		|
|                |---+                |		|
|	R1		              |		|
.-------------------------------------.		|
		^				|
		|				V
		|	.-------------------------------------.
		|------>|	   Availability Info Base     |	
			|         +-------------------+       |	
			|    Name |a|b|c|d|e|f|g|h|i|j|	      |	
			| RouterID|3|3|3|2|2|2|2|1|1|1|	      |	
			|	  +|-|-|--------------+	      |	
			|	   | | |	              |	
			|	   | | |      CS              |	
			|	   | | |    +---+             |	
			|	   | | ---->| c |             |
			|	   | |      |---|             |	
			|	   | ------>| b |   	      |	
			|	   |	    |---|             |	
			|	   -------->| a |    	      |	
			|		    +---+    	      |	
			|	R3			      |	
			.-------------------------------------.
Figure 2: A design for coordinated forwarding and caching

			</artwork>
			<!--postamble>This is the postamble.</postamble-->
		</figure> 

   </section>  <!-- CFCExample -->
   
   
</section>  <!-- CFC -->


<section anchor="DIPR" title="Dealing with Inconsistent Popularity Ranking">

	<t>

		In practice, popularity rankings seen by different routers are more
		likely inconsistent.  In such cases, the efficiency of content
		forwarding and caching will be degraded. We describe a solution that
		leverages the dual-segment caching design to address the inconsistent
		popularity ranking problem.

	</t>

		<section anchor="IPR" title="Inconsistent Popularity Ranking"> 
			
			<t>
				
				Inconsistency in popularity ranking happens when the ranking
				sequences of routers are slightly different from each other.
				Therefore, the knowledge of routers about the distribution of
				contents in the caches may be inaccurate. In this situation,
				when any Interest requesting comes for a content, AIB may tell
				a wrong destination where it should be forwarded to, resulting
				in cache misses and efficiency degradation.  
			
			</t>
			
			<t> 
				
				We illustrate inconsistency in popularity ranking through an
				example shown in the following figure. In this example, router
				R2's ranking sequence is slightly different from R1's and R3's.
				In R2's ranking sequence, the positions of content h and f are
				swapped and content k replaces j. As a result, router R2 caches
				contents {d, e, h, g}; however, routers R1 and R3 expect that
				R2 caches {d, e, f, g} instead. Whenever R1 and R3 forward
				Interests for content f to R2, such Interests have to be
				further forwarded towards the origin by R2 (not shown in the
				figure).  Similarly, R2 always forwards Interests for content f
				and k to R1, resulting in cache misses and further forwarding.  
			
			</t> 

<figure src='v-arch.png' alt='[The Vertical Architecture]'>
			<!--preamble>This is the preamble.</preamble-->
			<artwork>

			.-------------------------------------.
			|	   Availability Info Base     |	
			|         .-------------------.       |	
			|    Name |a|b|c|d|e|h|g|f|i|k|	      |	
			| RouterID|3|3|3|2|2|2|2|1|1|1|	      |	
			|	  .------|-|-|-|------.	      |	
			|		 | | | |	      |	
			|		 | | | |      CS      |	
			|		 | | | |    +---+     |	
			|		 | | | ---->| g |     |
			|		 | | |      |---|     |	
			|		 | | ------>| h |     |	
			|		 | |	    |---|     |	
			|		 | -------->| e |     |	
			|		 |  	    |---|     |	
		------->|		 ---------->| d |     |	
		|	|	R2		    +---+     |	
		|	.-------------------------------------.
		|				^	
		|				|
		V				|
.-------------------------------------.		|
|	   Availability Info Base     |		|
|         +-------------------+       |		|
|    Name |a|b|c|d|e|f|g|h|i|j|	      |		|
| RouterID|3|3|3|2|2|2|2|1|1|1|	      |		|
|	  +--------------|-|-|+	      |		|
|		         | | |	      |		|
|		         | | |        |		|
|		 +---+   | | |        |		|
|		 | h |&#9001;--  | |        |		|
|		 |---|     | |	      |		|
|		 | i |&#9001;----| |        |		|
|		 |---|       |	      |		|
|		 | j |&#9001;------|        |		|
|                |---+                |		|
|	R1		              |		|
.-------------------------------------.		|
		^				|
		|				|
		|				V
		|	.-------------------------------------.
		|------>|	   Availability Info Base     |	
			|         +-------------------+       |	
			|    Name |a|b|c|d|e|f|g|h|i|j|	      |	
			| RouterID|3|3|3|2|2|2|2|1|1|1|	      |	
			|	  +|-|-|--------------+	      |	
			|	   | | |	              |	
			|	   | | |      CS              |	
			|	   | | |    +---+             |	
			|	   | | ---->| c |             |
			|	   | |      |---|             |	
			|	   | ------>| b |   	      |	
			|	   |	    |---|             |	
			|	   -------->| a |    	      |	
			|		    +---+    	      |	
			|	R3			      |	
			.-------------------------------------.
Figure 3: An example of inconsistent ranking sequences
			</artwork>
			<!--postamble>This is the postamble.</postamble-->
		</figure> 

	</section>  <!-- IPR -->

	<section anchor="DSCSD" title="Dual-Segment Content Caching"> 
		
		<t> 
			
			To address the above problem resulted by inconsistent popularity, a
			dual-segment cache design can be adopted, namely, divide a router's
			Content Store into two segments: 
			
			<list style="symbols">
				
				<t>
					
					the Advertised Content Store (ACS for short), which is the
					regular collaborative cache that is operated the same way
					as described in the preceding subsection assuming
					consistent popularity; 
				</t>

				<t> 
					
					the Complementary Content Store (CCS for short), which is
					the cache space used for adapting to the inconsistency of
					popularity distribution.  
				
				</t>

			</list>
		</t> 
		
		<t> 
			
			The rationale behind this dual-segment design is to leverage CCS to
			absorb contents that are supposed to be store at a router but are
			missing in its ACS due to inconsistent popularity. Upon receiving
			an Interest, if the requested content is available locally, the
			router directly responds with the data.  Otherwise, if the Interest
			comes from another collaborative router, the router forwards the
			Interest towards the content origin and stores the returned data
			into its Complementary Content Store when the data comes back; if
			the Interest comes from a requesting host directly, the router
			applies its knowledge of popularity-ranking sequence and checks
			whether the ranking of the requesting content is less than the
			cache capacity; If yes, it forwards the Interest to the
			collaborative router designated by the sequence; otherwise, it
			forwards the Interest towards the origin.

	   </t> 
     
   
   </section>  <!-- DSCSD -->
	   	
   <section anchor="ACSD" title="Adaptive Content Store Division">
	   
	   <t>
		   
		   The impact of the preceding dual-segment design on the performance
		   of coordinated forwarding and caching in content-centric networks
		   could be subtle. On the one hand, a sufficiently large CCS is more
		   favorable to adapt to the popularity inconsistency; and on the other
		   hand, when the total size of the Content Store is fixed, a smaller
		   CCS is more favorable, as the ACS could be larger to store more
		   frequently requested contents in the network. Clearly there exist
		   trade-offs when determining their sizes.
	   
	   </t>

	   <t>
		   
		   A straightforward solution is fixed division of ACS and CCS, e.g.,
		   90% dedicated to ACS and the remaining to CCS. However, the problem
		   of fixed division is one size does not fit all, namely, routers may
		   experience different levels of popularity inconsistency, and a fixed
		   size may either over-estimate or underestimate the inconsistency
		   level, thus resulting an inefficient use of the cache space. 

	   </t>
	   
	   <t> 
		   
		   A distributed, self-adaptive scheme can be designed to address the
		   above division problem; specifically, the division of ACS and CCS is
		   adjusted based on the dynamics experienced by the content routers.
		   The scheme is designed based on cache miss rate	as the cache miss
		   rate plays an important role in the efficiency of dual-segment
		   collaborative caching. On the one hand, when the miss rate is low,
		   it implies a potentially oversized CCS and thus a waste of cache
		   space. On the other hand, when the miss rate is high, then contents
		   supposed to be stored in a designated collaborative router are
		   actually not stored in it, resulting in additional costs to forward
		   Interests to the designated router and then towards the origin.

	   </t>
	   	
	   <t>
		   
		   Below we describe an example algorithm for adaptively adjust the
		   cache division.  Define the Locking Miss Rate (LMR for short) to
		   characterize the maximum miss rate (corresponding to a maximum level
		   of popularity inconsistency) that a router would like to tolerate.
		   Every router distributively adjusts its size of CCS to make its miss
		   rate closely approach to LMR.  More specifically, a router starts
		   with a pre-configured initial cache division, e.g., 90% for the
		   Advertised and 10% for CCS.  It then begins measuring the cache miss
		   rate for all Interests received from other collaborative routers.
		   We denote the measured cache miss rate by MR.

		   The example algorithm is as follows: 
		   <list style="symbols">

			   <t>
				   
				   If MR&#9001;=LMR, it is likely that the router experiences
				   less popularity inconsistency than expected, we may have an
				   oversized CCS, so the size of CCS is halved so that we
				   increase the size of ACS to cache more contents in the
				   network.  
			   
			   </t>

			   <t>
				   
				   If MR>LMR, the popularity inconsistency is likely
				   under-estimated; therefore we should reduce the size of ACS
				   to have a larger CCS in order for accommodating the
				   inconsistency. Usually, it will be better to reduce the size
				   of ACS linearly comparing with reducing the size
				   aggressively. For example, the size of ACS can be reduced to
				   1/(1+MR) of the orginal ACS size.  
			   
			   </t>

		   </list>
	   
	   </t>
	   		
	
   </section>  <!-- ACSD -->

   <section anchor="DSCSDExample" title="Example: Dual-Segment Content Store Division"> 
	   
	   <t> 
		   
		   An example of this design for router R2 in the previous example is
		   shown in the following figures.  With the single-segment design,
		   content f, which is supposed to be cached in R2, is always missing
		   due to the inconsistency of R2's ranking statistics. However, with
		   the dual-segment design, R2 only advertise 3 as its cache size. As a
		   result, an extra cache unit can be used to store the missing content
		   f. Therefore, future Interests requesting for f forwarded from
		   routers R1 and R3 can be fulfilled by R2.

	   </t> 

<figure src='v-arch.png' alt='[The Vertical Architecture]'>
			<!--preamble>This is the preamble.</preamble-->
			<artwork>
.-----------------------------------.
|	   Availability Info Base   |	
|         .-------------------.     |	
|    Name |a|b|c|d|e|h|g|f|i|k|	    |	
| RouterID|3|3|3|2|2|2|2|1|1|1|	    |	
|	  .------|-|-|-|------.	    |	
|		 | | | |	    |	
|		 | | | |    CS      |	
|		 | | | |  .---.     |	
|		 | | | -->| g |     |
|		 | | |    |---|     |	
|		 | | ---->| h |     |	
|		 | |	  |---|     |	
|		 | ------>| e |     |	
|		 |  	  |---|     |	
|		 -------->| d |     |	
|	R2		  .---.     |	
.-----------------------------------.
        (a)Single segment




.------------------------------------.
|	   Availability Info Base    |	
|         .-------------------.      |	
|    Name |a|b|c|d|e|h|g|f|i|k|	     |	
| RouterID|3|3|3|2|2|2|2|1|1|1|	     |	
|	  .------|-|-|--------.	     |	
|		 | | |	     CS      |			      
|		 | | | .-----------. |
|		 | | | |  ACS  CCS | |	
|		 | | | |  .-.  .-. | |	
|		 | | --|->|h|  |f| | |	
|		 | |   |  |-|  .-. | |	
|		 | ----|->|e|      | |	
|		 |     |  |-|      | |	
|    R2		 ------|->|d|      | |		
|		       .-----------. |	
.------------------------------------.
        (b)Dual segment

Figure 4: An example of Content Store Division
			</artwork>
			<!--postamble>This is the postamble.</postamble-->
		</figure> 
	   
   </section>  <!-- DSCSDExample -->

</section>  <!-- DIPR -->

<section anchor="finConc" title="Conclusions"> 
	
	<t>
		
		In this draft, we describe a distributed, popularity-guided coordinated
		forwarding and caching design for information-centric networks, where
		we introduce an Availability Information Base to allow coordination
		between forwarding and caching in content routers. In order to deal
		with popularity inconsistency in realistic networks, we also describe a
		self-adaptive dual-segment cache division scheme. Simulation-based
		evaluations demonstrate that by coordinating forwarding and caching in
		ICN, content access cost and cache miss rate can be significantly
		improved.

	</t>

</section>  <!-- finConc -->


<section anchor="contrib" title="Contributors">

   <t>Guoqiang Wang
   <vspace blankLines="0"/>
   2330 Central Expy
   <vspace blankLines="0"/>
   Santa Clara
   <vspace blankLines="0"/>
   US
   <vspace blankLines="1"/>
   Email: gq.wang AT (huawei.com)
   </t>

   <t>Xinwen Zhang
   <vspace blankLines="0"/>
   2330 Central Expy
   <vspace blankLines="0"/>
   Santa Clara
   <vspace blankLines="0"/>
   US
   <vspace blankLines="1"/>
   Email: xinwen.zhang AT (huawei.com)
   </t>

   <t>Shuo Guo
   <vspace blankLines="0"/>
   University of Minnesota
   <vspace blankLines="0"/>
   Minneapolis, Minnesota 55455
   <vspace blankLines="0"/>
   USA
   <vspace blankLines="1"/>
   Email: sguo AT (umn.edu)
   </t>
   
   <t>Guangyu Shi
   <vspace blankLines="0"/>
   Central Research Institute, Huawei Technologies
   <vspace blankLines="0"/>
   Shenzhen
   <vspace blankLines="0"/>
   China
   <vspace blankLines="1"/>
   Email: shiguangyu AT (huawei.com)
   </t>
   
</section>

<!--
<section anchor="ack" title="Acknowlegements">

   <t>TBD.</t>

</section>

-->

<section anchor="secur" title="Security Considerations">

	<t> Security issues are not discussed in this memo.  </t>

</section>
<!-- secur -->


<section anchor="IANA" title="IANA Considerations">

   <t>This document makes no specific request of IANA.</t>
   
</section>  <!-- IANA -->

  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

<references title="Informative References">

      <reference anchor="GXS12">
      <front>
          <title>Collaborative Forwarding and Caching in Content Centric Networks, Networking 2012, Prague, Czech Republic</title>
         <author initials="S." surname="Guo" fullname="S. Guo">
            <organization>University of Minnesota, Minneapolis, Minnesota</organization>
         </author>
         <author initials="H." surname="Xie" fullname="H. Xie">
            <organization>Huawei Technologies, USA</organization>
         </author>
         <author initials="G." surname="Shi" fullname="G. Shi">
            <organization>Central Research Institute, Huawei Technologies, Shenzhen, China</organization>
         </author>
         <date month="May" year="2012"/>
      </front>
   </reference>

</references>

  </back>
</rfc>

