# Content Management Based on Content Popularity Ranking in Information-Centric Networks
## 3 Content Management Based on Content Popularity Ranking
### The CPR Mechanism  
The vast amount of information that needs to be stored at a specific repository is bound to become greater than the capacity of that node at one point in time or another. Additionally, as all the nodes incorporating the basic CCN concept cache all the interacted content, a considerable amount of unnecessary duplicate content is created within the network topology. Therefore, cache overflow may occur frequently, and removing existing content from the repositories becomes imperative. On the other hand, removing frequently requested content may cause cache misses in the near future. The various existing content caching schemes and content removal schemes that are used regularly may have simple algorithms to be implemented but fail to consider the potential future popularity of the content. Therefore, performance degradation may occur as the content that is going to be requested by the users may not have been cached or may be removed from the repository. Hence, to resolve these issues, we propose a content popularity ranking (CPR) mechanism that ranks the incoming content among the available content at the local storage of a server machine, and based on that, we propose new schemes for content caching and content removal. To test and evaluate our proposed CPR mechanism and the proposed schemes, we created various network topologies using NS-3 [37]. The experimental architecture consists of several machines that act as either servers or clients. The primary purpose of the client machines is to request random content from the servers repeatedly. The server machines have several objectives, including storing various content, fetching the desired content from another server when the requested content is not readily available at that server, keeping the fetched content in storage for future use, delivering the requested content to the client machines, and generating diverse experimental results on the whole process. Additionally, these servers can act as intermediary machines between the remote content servers and the requesting clients to complete the route. All these machines that are part of the content request and retrieval procedure, including the servers, the clients, and all the intermediate machines, are referred to as \"nodes\" hereafter. Content is considered to be popular when several users express their interest in that particular content. However, deciding the popularity of content based on only the download counter is a long-term procedure. Therefore, several other factors should be considered to predict the popularity of content in the beginning, and the available content at the local repository of each server should be ranked in terms of its popularity at the initial stage. Moreover, the same content may have different popularity at various nodes, and the popularity of content may change over time. Thus, the process of calculating the popularity of content should be a continuous one. In order to measure the popularity of content as soon as it is stored in the server repository, we introduced tags and labels in our CPR mechanism. All the content was assigned with three tags, each consisting of a label taken from several predefined labels for those tags. Below we describe the labels of each of the tags in detail. The label assigned to a tag is expressed by \(x\) hereafter. According to the statistics in [1], people are mostly interested in video content rather than audio or text content. Moreover, text content is generally not time-sensitive, and video content consumes higher bandwidth than audio or text content while being retrieved from remote servers. Therefore, video content generally becomes more popular than non-video content and should be kept in the repositories for a longer time, as repeated requests may occur for the same video content. We have defined a _content type_ tag, expressed by \(T\), where the file types of each content are differentiated and categorized, such as _text_, _audio_, and _video_.