## 2 State of the Art
### RINA-Based Networks  
RINA networks are built upon the use of a single type of layer that is being reused. That layer is called DIF. A DIF is no more than a distributed application composed of several Inter Process Communication Processs (IPCPs) that cooperate with each other to provide IPC services to applications of upper DIFs. There are two types of DIFs: shim DIFs and normal DIFs. The shim DIFs are adaptations of existing protocols such as WiFi [22], VLAN [23], and TCP/UDP [24]. The shims facilitate the underlying protocol layer with the IPC service interface. Meanwhile, a normal DIF provides fixed mechanisms for data transfer, data transfer control, routing, access control, and Service Data Unit (SDU) protection, among others. A normal DIF uses the services of underlying DIFs (shims or normal) to transfer data across the network. Figure 2 shows an example of a generic RINA architecture that is composed of normal DIFs and shim DIFs. RINA-based networks are only built using two generic protocols in every DIF: the Error Flow Control Protocol (EFCP) and the Common Distributed Application Protocol (CDAP). No more protocols are required because DIF functionalities (e.g., security, QoS, or routing) are programmed using policies without implementing dedicated protocols. Figure 2: Example of a RINA network architecture. EFCP oversees the data transfer and data transfer control. EFCP provides tightly coupled mechanisms for transferring SDUs, such as flow addressing or sequencing. Furthermore, EFCP provides loosely coupled mechanisms, such as flow control or re-transmission control, for data transfer control. Meanwhile, CDAP oversees layer management functions such as enrollment, namespace management, flow allocation, resource allocation, routing, and security coordination [4]. CDAP operates on remote objects used by all the layer management functions. All the objects and states are modeled and stored on the Resource Information Base (RIB). The RIB objects model includes the object naming, relationships between objects--inheritance and containment, among others--the object attributes, and the CDAP operations that can be applied to them [4]. The RIB daemon manages access to the RIB and exchanges CDAP Protocol Data Units (PDUs) with RIB daemons of neighbor IPCPs. The only operations that can be performed on objects are: create/delete, read/write, and start/stop. Table 1 details the CDAP messages and their purposes to operate over RIB objects. The RIB daemon implements the Common Application Connection Establishment Phase (CACEP), which exchanges naming information with peers. CDAP helps implement layer management functionalities such as enrollment, flow allocation, and routing. RINA-based networks have demonstrated advantages regarding network management compared to traditional networks. A RINA-based network reduces the number of specialized protocols to perform some network features. For instance, RINA has demonstrated that it does not require particular protocols or mechanisms to support mobility by providing a complete naming scheme [25]. Naming the interface instead of the node raises a relevant issue in enabling mobility, and it is solved by using specialized protocols for setting up tunnels [4]. Furthermore, RINA has demonstrated its capacity to support transport over heterogeneous networks [9] as well as its simplicity in managing multiple layers in the multi-tenant data center network scenario [6]. The use of RINA in large-scale networks, such as the ones found in NFV-based environments, is a topic that has been widely discussed. Previous research showcases the advantages of RINA networks in large-scale networks. On the one hand, ref. [6] discusses the advantages of managing a large data center RINA network in comparison with managing a similar IP-based network. On the other hand, ref. [24] presents and discusses several Key Performance Indicators (KPIs) regarding configuration management, software complexity, and automation in large-scale networks.