# An Efficient Delay Tolerant Networks Routing Protocol for Information-Centric Networking
## 3 Proposed Protocol  
In this paper, we propose an efficient DTN routing protocol for ICN and focus on Interest and Data delivery between DTN nodes. In DTN, network topology is highly dynamic and thus, the operation PIT and FIB is not efficient, as originally proposed for wired network. Reverse path forwarding using PIT in ICN cannot be used efficiently too, since topology is not stable due to the mobility of DTN nodes [18]. Therefore, Interest and Data should be delivered opportunistically by store-carry-forward mechanism of DTN, where Interest and Data are encapsulated within DTN bundle. We consider an ICN environment, where multiple Interests are generated for the same requested Data by multiple requesters. For efficient dissemination of Interest and Data in DTN, we propose a status table with requested Data ID, requester ID, and satisfaction flag, as shown in Figure 1. Satisfaction flag is defined for a pair of requested Data ID and requester ID to show the delivery status of Data to the requester node, so that unnecessary forwarding of Data for already satisfied Interests (delivered Data) is avoided, which results in the reduction of Data overhead. In Figure 1, Data d\({}_{1}\) is requested by requesters R\({}_{1}\) and R\({}_{2}\) but none of the requests is satisfied yet. Data d\({}_{2}\) is requested by requesters R\({}_{2}\), R\({}_{3}\), and R\({}_{4}\), and Data d\({}_{2}\) is successfully delivered to requesters R\({}_{2}\) and R\({}_{4}\) already. We note that the status table in Figure 1 is managed by each node by using locally obtained information from other nodes during contacts, and each node operates based on locally obtained up-to-date information. Figure 2 shows the exchange of the status table information defined in Figure 1 between two nodes when they contact each other. When node A and node B contact each other, they exchange summary vectors which include the information of status table. Then, each node updates its status  
table using the received summary vector. In Figure 2, node A updates a satisfaction flag for a pair of Data d\({}_{1}\) and requester R\({}_{1}\) as 1 and adds a new entry for a pair of Data d\({}_{2}\) and requester R\({}_{3}\) and sets its satisfaction flag as 1, which was received from node B. Also, node B adds an entry for a pair of Data d\({}_{1}\) and requester R\({}_{2}\) and sets its satisfaction flag as 0, which was received from node A. Also, node B adds a new entry for a pair of Data d\({}_{2}\) and requester R\({}_{4}\) and sets its satisfaction flag as 1. By updating the values of status table, each node can manage up-to-date information of Data ID, requester ID, and satisfaction flag. We note that although Interests are generated at original requesters, they are not exchanged between contact nodes, but the information for requesters is shared using the exchange of status table, which has little overhead. Figure 3 shows the update of requester ID in Data stored in buffer by using exchanged status table information between two nodes when they contact each other. When a node A receives Data ID, requester ID, and satisfaction flag information from another node, the requester ID is updated, if corresponding Data already exists in buffer. As shown in Figure 3, if a status table information of node A was updated after contact, requester information for Data stored in the buffer of node A is updated. In this example, it is assumed that only Data d\({}_{1}\) and d\({}_{2}\) are already stored in the buffer of  
Figure 1: A status table. Figure 2: Exchange of status table information. node A. Since requester ID R\({}_{2}\) with satisfaction flag of 0 for Data d\({}_{1}\) is not present in Data d\({}_{1}\) of buffer of node A, requester ID R\({}_{2}\) is newly added to the Data d\({}_{1}\). Also, requester ID R\({}_{2}\) with satisfaction flag of 0 for Data d\({}_{2}\) is not present in Data d\({}_{2}\) of buffer of node A, requester ID R\({}_{2}\) is newly added to the Data d\({}_{2}\).