ICN Research Group J. Hong
Internet-Draft T. You
Intended status: Informational Y-G. Hong
Expires: January 3, 2019 ETRI
July 2, 2018

CCNx Extension for Name Resolution Service
draft-hong-icnrg-ccnx-nrs-02

Abstract

This document presents the CCNx extension for Name Resolution Service (NRS). It describes TLV-based CCNx messages for NRS and modification of CCNx forwarder where the messages for NRS are working.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on January 3, 2019.

Copyright Notice

Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

In Information Centric Networking (ICN)[RFC7927], the name resolution is defined as the first step of ICN routing along with content discovery and delivery, which translates a content name to locator(s) of providers/sources that can provide the content. However, the name resolution step can be omitted in the hierarchical name based routing.

NDN [NDN] and CCN [CCN] are representative projects of ICN which use the hierarchical name based routing. Nevertheless, in [Afanasyev], in order to address the routing scalability problem in NDN's DFZ, a distributed mapping system called NDNS was designed, which maintains and lookups the mapping information from a name to its globally routed prefixes. Here, NDNS is a kind of Name Resolution Service (NRS) in NDN.

Similarly, CCN also has a challlenge to address the routing scalability problem in CCN's DFZ even though CCN uses the hierarchical name based routing. Thus, NRS can be utilized in CCN for the scalable name based routing as well as the efficient mobility support.

This document presents the design of NRS-Mapping System (NRS-MS) which is a system that provides the name resolution service in CCN and its implementation by extending CCNx. It also describes TLV-based CCNx messages for NRS and modification of CCNx forwarder where the messages for NRS are working.

2. Conventions and Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

This document uses the terminology of [CCNxSemantics] and [CCNxMessages] for CCNx entities.

The following terms are used in this document and defined as follows:

3. Mappig System for Name Resolution Service in CCN

This document presents the new implementation of NRS-MS functions based on extension of CCNx to show usefulness of NRS in CCN. We design a simple scenario to maximize NRS usefulness and to understand NRS functionalities easily.

                                       
                  +-----+                
                  | MS  |
                  +-----+
                     | 
                     |     
   +----------+   +-----+   +-----+   +-----+
   | Consumer |---| CR1 |---| CR2 |---| RS1 |
   +----------+   +-----+   +-----+   +-----+
                        \
                         \
                        +-----+   +-----+    
                        | CR3 |---| RS2 |
                        +-----+   +-----+ 
         
       

Figure 1: Replica server scenario

4. CCNx Extension for Name Resolution

We have implemented the NRS for CCN based on CCNx. This means that the name is resolved by Interest and Content Object packets defined in CCNx. We define two types of Interest packets for NRS: Interest for registration (I-reg) and Interest for lookup (I-get) which are sent from a proper CR to its default MS for name registration and lookup, respectively. We also define two types of Content Object (CO) packets: CO-reg and CO-get which are corresponding to the I-reg and I-get, respectively. We have utilized the nested header format used in CCNx [CCNxMessages] to enable the newly defined packets.

4.1. Interest

I-get is an Interest packet requesting the name resolution. It includes two names, MS name and a requested name as shown in Figure 2. MS name is used for forwarding I-get to the correspoding MS. On the other hands, the requested name is used for updating PIT. At each CR, I-get is sent to its defalut MS when FIB does not have information for the requested name, where each CR is aware of its default MS's name so it knows where to send I-get.

                    
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +---------------+---------------+---------------+---------------+
   |    Version    |  PT_INTEREST  |         PacketLength          |
   +---------------+---------------+---------------+---------------+
   |   HopLimit    |   Reserved    |     Flags     | HeaderLength  |
   +---------------+---------------+---------------+---------------+  
   |    MessageType, T_NAME        |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                       Name TLV (MS Name)                      |
   +---------------+---------------+---------------+---------------+
   |    MessageType, T_GET         |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                     Name TLV (requested Name)                 |
   +---------------+---------------+---------------+---------------+      
       
       

Figure 2: Interest packet format for name resolution request

4.2. Content Object

                    
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +---------------+---------------+---------------+---------------+
   |    Version    |  PT_CONTENT   |         PacketLength          |
   +---------------+---------------+---------------+---------------+
   |            Reserved           |     Flags     | HeaderLength  |
   +---------------+---------------+---------------+---------------+  
   |    MessageType, T_NAME        |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                       Name TLV (requested Name)               |
   +---------------+---------------+---------------+---------------+
   | MessageType, T_PAYLDTYPE_GET  |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                       Name TLV (acquired Name)                |
   +---------------+---------------+---------------+---------------+      
       
       

Figure 3: Content Object packet format for name resolution request

CO-get is a Content Object which is a respoding packet to I-get. So, it is used to forward the resolved name. As Figure 3 shows, CO-get includes two names, requested name and acquired name. CO-get is forwarded by the requested name according to its PIT record toward CR which initiated the corresponding I-get. replying to the name resolution request, I-get.

4.3. Forwarder

Forwarder has been modified to make the I-get and CO-get working properly. Forwarder initicates I-get when there is no information for the requested name in FIB. In general, Forwarder drops Interest when no information in FIB. However, we made a chance to lookup for another name instead of dropping it right away.

It is assuemd that each forwarder knows the name of its defalut MS. So, forwarder can use the MS name when it initiates I-get. MS name is only used for forwading toward MS but PIT is updated by the requested name which is the second name included in I-get. Therefore, forwarder uses only the requested name in CO-get to forward back to where I-get is initiated.

5. CCNx Extension for Name Management

In order to serve the NRS lookup, the name of data object has to be registered in a mapping server (MS)and its binding information also has to be stored in a MS. Thus, we define 4 different types of the registering name: reg, add, del, and dereg.

5.1. Interest

I-reg is an Interest packet to register a name and store the binding information in a corresponding MS. As figure 4 shows, I-reg includes three names: MS name, registering name and binding name. MS name is used for forwarding I-reg toward MS and registering name is used for updating PIT. Similarly to I-get, I-reg is sent to its defalut MS.

                    
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +---------------+---------------+---------------+---------------+
   |    Version    |  PT_INTEREST  |         PacketLength          |
   +---------------+---------------+---------------+---------------+
   |   HopLimit    |   Reserved    |     Flags     | HeaderLength  |
   +---------------+---------------+---------------+---------------+  
   |    MessageType, T_NAME        |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                       Name TLV (MS Name)                      |
   +---------------+---------------+---------------+---------------+
   |    MessageType, T_REG         |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                     Name TLV (registering Name)               |
   +---------------+---------------+---------------+---------------+ 
   |    MessageType, T_VALUE       |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                     Name TLV (binging Name)                   |
   +---------------+---------------+---------------+---------------+     
       
       

Figure 4: Interest packet format for name registration

5.2. Content Object

                    
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +---------------+---------------+---------------+---------------+
   |    Version    |  PT_CONTENT   |         PacketLength          |
   +---------------+---------------+---------------+---------------+
   |            Reserved           |     Flags     | HeaderLength  |
   +---------------+---------------+---------------+---------------+  
   |    MessageType, T_NAME        |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                     Name TLV (registering Name)               |
   +---------------+---------------+---------------+---------------+
   | MessageType, T_PAYLDTYPE_REG  |         MessageLength         |
   +---------------+---------------+---------------+---------------+
   |                        Name TLV (binding Name)                |
   +---------------+---------------+---------------+---------------+      
       
       

Figure 5: Content Object packet format for name registration

CO-reg is a Content Object which is a respoding packet to I-reg. As Figure 5 shows, CO-reg includes two names, registering name and binding name. CO-reg is forwarded by the registering name according to its PIT record toward CR which initiated the corresponding I-reg.

5.3. Forwarder

Forwarder has been modified to make the I-reg and CO-reg working properly. When new name is registered to MS, forwarder initiates and sends I-reg toward its default MS. MS name is only used for forwading I-reg but PIT is updated by the registering name which is the second name included in I-reg. Therefore, forwarder uses only the registering name in CO-reg to forward back to where I-reg is initiated.

6. IANA Considerations

There are no IANA considerations related to this document.

7. Security Considerations

[TBD]

8. Acknowledgements

[TBD]

9. References

9.1. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.
[RFC7927] Kutscher, D., Eum, S., Pentikousis, K., Psaras, I., Corujo, D., Saucez, D., Schmidt, T. and M. Waehlisch, "Information-Centric Networking (ICN) Research Challenges", RFC 7927, DOI 10.17487/RFC7927, July 2016.

9.2. Informative References

[NDN] , "NSF Named Data Networking project.", http://www.named-data.net
[CCN] , "Content Centric Networking project.", https://wiki.fd.io/view/Cicn
[Afanasyev] Afanasyev, A. et al., "SNAMP: Secure Namespace Mapping to Scale NDN Forwarding", IEEE Global Internet Symposium , April 2015.
[CCNxSemantics] Mosko, M., Solis, I. and C. Wood, "CCNx Semantics", draft-irtf-icnrg-ccnxsemantics-06 , October 2017.
[CCNxMessages] Mosko, M., Solis, I. and C. Wood, "CCNx Messages in TLV Format", draft-irtf-icnrg-ccnxmessages-06 , October 2017.

Authors' Addresses

Jungha Hong ETRI 218 Gajeong-ro, Yuseung-Gu Daejeon, 34129 Korea Phone: +82 42 860 0926 EMail: jhong@etri.re.kr
Tae-Wan You ETRI 218 Gajeong-ro, Yuseung-Gu Daejeon, 34129 Korea Phone: +82 42 860 0642 EMail: twyou@etri.re.kr
Yong-Geun Hong ETRI 218 Gajeong-ro, Yuseung-Gu Daejeon, 34129 Korea Phone: +82 42 860 6557 EMail: yghong@etri.re.kr