DeepAuC: Joint deep learning and auction for congestion-aware caching in Named Data Networking

Over the last few decades, the Internet has experienced tremendous growth in data traffic. This continuous growth due to the increase in the number of connected devices and platforms has dramatically boosted content consumption. However, retrieving content from the servers of Content Providers (CPs) can increase network traffic and incur high network delay and congestion. To address these challenges, we propose a joint deep learning and auction-based approach for congestion-aware caching in Named Data Networking (NDN), which aims to prevent congestion and minimize the content downloading delays. First, using recorded network traffic data on the Internet Service Provider (ISP) network, we propose a deep learning model to predict future traffic over transit links. Second, to prevent congestion and avoid high latency on transit links, which may experience congestion in the future; we propose a caching model that helps the ISP to cache content that has a high predicted future demand. Paid-content requires payment to be downloaded and cached. Therefore, we propose an auction mechanism to obtain paid-content at an optimal price. The simulation results show that our proposal prevents congestion and increases the profits of both ISPs and CPs.


Introduction
In recent years, Internet traffic has continued to increase due to the growing number of connected devices with emerging platforms such as digital assistants, virtual, augmented, and mixed reality. It is estimated, by the year 2020, there will be 50 billion things connected to the Internet, which is equivalent to six devices per person [1]. This large-scale increase in both connected devices and platforms will tremendously increase content consumption. However, obtaining contents from Content Providers (CPs) can increase network traffic, which may cause a high network delay and congestion. Accordingly, caching content in close proximity to the users is one solution to reduce network traffic on transit links, i.e., bandwidth consumption [2][3][4][5][6][7][8]. PLOS  Currently, many future Internet architectures, such as Content Distribution Network (CDN) [9] and Named Data Networking (NDN) [10], have been proposed to deal with network traffic increase by caching contents. The CDN is a distributed geographical network of caches or proxy servers that perform fast content delivery to users. In addition, CDN operates on existing TCP/IP architecture as an overlay architecture. Further, the CPs use cacheenabled servers of CDN providers to distribute their contents. Conversely, in NDN, users request contents by sending Interest packets and any node that has the requested contents can reply with Data packets. To route both Interest and Data packets, NDN uses content names rather than source and destination IP addresses [10]. In addition, inside the Internet Service Provider (ISP) network, routers in the transmission path can keep copies of the requested contents for satisfying future requests of the same contents. In other words, NDN permits the ISP to cache contents passing through its network [11], where user requests for contents can be served from cache storages of the routers. Therefore, caching may allow the ISP to reduce data traffic on transit links and prevent congestion, which can cause high network delays, packet losses, and retransmissions. Here, we chose NDN over other networks, such as CDN, because NDN allows the ISP to easily identify contents passing through its network using the content names.
As described in [12][13][14], we consider two categories of ISPs, the Access ISP and Transit ISPs. The Access ISP provides Internet access to end-users connected to its network on payment for access fees and using various technologies such as modems, and fiber optics. Conversely, Transit ISP also called Upstream Transit Provider has a larger network than Access ISP and connects Access ISP to the rest of the Internet in which Access ISP has no access itself. In other words, the Transit ISP has and sells large amounts of bandwidth that allows connecting Access ISPs to the rest of the Internet, where each Access ISP has to pay transit fee to the Transit ISP. Therefore, the Access ISP has a motivation to cache the contents for minimizing the transit traffic, i.e., the amount to pay for the transit traffic, and reducing the delays experienced by its customers in retrieving contents, where the Access ISP charges its customers the Internet access fees. Furthermore, as described in [12,15], the Transit ISP does not have an incentive to cache the contents. However, the content owner or Content Provider (CP) can make an agreement with Access ISP or Transit ISP for content caching service. Moreover, the Transit ISP has large networks than Access ISP. Therefore, it is more reasonable that the CP makes a caching agreement with Transit ISP, as an incentive to participate in content distribution, rather than making it with Access ISP, which already has a motivation to cache the contents. Furthermore, the ISP has limited cache storage and deciding which contents to cache to prevent congestion is a challenging issue for the following reasons: • First, the demand for content and the traffic volume on transit links vary considerably depending on the time and location. However, the Access ISP needs to cache contents that will have high future demand over congested transit links. This allows the Access ISP to prevent congestion by alleviating the traffic volume on the congested transit links and minimizes the network delays [11].
• Second, CPs make money through selling paid-contents, where users have to pay content prices/fees for using them [15,16]. Therefore, allowing the Access ISP to cache paid content in its network, the CP will not have full control over its paid-content to track both content access and payment. In other words, the Access ISP will decide itself on paid-content placement inside its network to minimize transit bandwidth consumption and satisfy its customer demands without always contacting the CPs. To overcome these challenges, the authors in [17,18] introduced the payment/remuneration from the Access ISP to the CP for the cached contents. However, when the Access ISP pays the content prices for downloading and caching them, this raises an issue on how the Access ISP can monetize its cache storages and obtain profits via caching paid-contents.
• Third, considering paid and non-paid-contents, paid-content requires a higher Quality of Service (QoS) than non-paid-contents to attract customers, and each customer needs to pay both the content price and Internet access fee [15]. Therefore, we need a caching approach that increases the profits of both the CPs and the Access ISPs.
• Lastly, because Transit ISPs gain more revenue when the transit traffic increases, there is no incentive for Transit ISPs to cache contents, unless they obtain an incentive from CPs for caching services. Conversely, Access ISPs have a greater incentive to cache content because content caching reduces the transit bandwidth payment and minimizes the delays experienced by their customers in retrieving contents [19]. Therefore, we need a caching approach that allows both Access and Transit ISPs to obtain benefits via caching contents.
To address the above challenges and deal with congestion, most of existing congestion control mechanisms detect congestion at an early stage and take reactive measures to prevent it. However, traditional congestion control algorithms cannot react immediately and this delay in reaction causes packet losses and increases network delays [20]. To address these issues, the authors in [20] and [21] introduced cooperative and distributed approaches for congestion control. The proposed approaches avoid network congestion before it occurs by monitoring the buffer size. Further, in NDN, both Pending Interest Table (PIT) and Content Store (CS) hits contribute in downsizing the number of Interest packets passing through the links [22]. However, in the above papers, the authors did not consider content caching as a way of preventing congestion in NDN. Accordingly, in Refs. [23] and [24], the authors proposed joint forwarding, caching, and congestion control approaches in NDN. The proposed approaches are used to maximize network utility and minimize network latency. However, demands for contents and the data traffic volume on transit links change depending on the time and location, and this issue was not considered in Refs. [23] and [24]. Due to the complexity of the problem of coordinating routing and caching, the authors in Ref. [25] showed that most existing protocols focused on the problem of forwarding demands for contents without considering the in-network caching scenario. To overcome this challenge, the authors introduced a new routing protocol that improves the cache hit probability. However, in [25], the authors have not considered the criteria to select contents to cache. Further, to prevent congestion before it occurs, methods reducing the sending rate or forwarding packets to another transit link(s) proposed in our previous work [20] can be used. However, in this paper, to prevent congestion before it occurs, we propose another technique that consists of caching contents that have higher predicted traffic volume and need to use transit links. We consider a prediction-based congestion control and content caching as proactive methods that can help to prevent congestion before it happens and avoid packet losses and delays experienced by existing reactivebased congestion control approaches. This new approach is more profitable for the Access ISPs than our previous approach and allows the Access ISP to minimize the transit bandwidth cost. In addition, for paid-content, using a joint caching and auction approach allows the Access ISP to obtain paid-content at an optimal price and participate in content selling by providing cached content to its customers on payment. The main contributions of this work are summarized as follows: • First, we propose a deep learning model that helps the Access ISP to record transit traffic volume, learn the transit traffic characteristics, and predict the traffic volume that needs to be sent over the transit link(s). We chose deep learning model over other approaches discussed in the related works because network traffic is dynamic and this makes prediction more complex for mapping dynamic input with output. Therefore, to map dynamic input with output, deep learning model creates an abstract representation of network traffic as the traffic grows, automatically extracts features, and adjusts weights for predicting future traffic over transit links.
• Second, to prevent congestion and reduce the transit traffic volume passing through the congested transit links, we propose caching approach, where the Access ISP downloads and caches contents that have high predicted traffic volume over the transit link(s).
• Lastly, we consider that the Access ISP needs to pay the content price for downloading and caching paid-contents that have high predicted traffic volume. Therefore, to monetize cache storages and obtain profits from cached paid-contents, we propose an auction approach to all the Access ISP to obtain paid-content at an optimal price that minimizes its total payments. Based on the user demands, the ISP can sell the cached paid-contents. In other words, the Transit ISP can sell the cache contents to the Access ISP, while Access ISP can sell the cached contents to its users/customers.
Specifically, the novelties of our work over the related work are the following. (1) We consider the data traffic volume on the transit links to be varying over time and location. Based on the historical network traffic volume, the Access ISP can predict the contents that have high chance/probability of being requested over congested transit links. Then, the Access ISP caches such contents to reduce the transit traffic and minimize delays. (2) We consider that there are many types of contents that need to be treated differently during the caching process, that is, paid-contents require payment and higher QoS than non-paid-contents. (3) For paid-content, the Access ISP can make a profit by selling the cached contents, while for non-paid-content, the caching helps the Access ISP to minimize the transit bandwidth cost.
The remainder of this paper is structured as follows, Section 3 describes our system model, while Section 4 presents our joint deep learning and auction approaches for congestion-aware caching. Section 5 discusses the simulation results and analysis. Finally, we conclude the paper in Section 6.

System model
In our system model, demonstrated in Fig 1, we consider Access NDN Provider (ANP) as an Access ISP that provides Internet services to end-users/consumers. As summarized in Table 1 of key notations, we use an undirected graph G ¼ ðV; EÞ to model the ANP network. We consider V to be a set of V routers and E to be a set of E links. Among the routers of ANP, we have cached-enabled routers denoted R and Gateway Routers ( Each router r 2 R is equipped with a cache storage of capacity c r . In addition, we denote I � E to be a set of I internal links (the black lines in Fig 1) in the ANP/ Transit NDN Provider (TNP) networks and T � E as a set of T transit links that connect the ANP network to the TNP networks (the red lines in Fig 1) such that E ¼ I [ T . Further, we assume that the ANP is connected to one or more TNPs, where the TNPs provide Internet transit services to the ANP. Each internal link i 2 I has a bandwidth of capacity C i Mbps, while each transit link t 2 T has a bandwidth of capacity C τ Mbps. Both the ANP and TNPs can serve the cached contents based on IP addresses, however, here, we consider the NDN traffic, i.e., the contents that can be retrieved by names rather than using the source and destination IP addresses.
Here, for efficient name lookup, the approaches described in [26,27] can be utilized, but we consider name lookup is outside the scope of this study.
The GRs connect the ANP network to the TNP networks via transit links. Therefore, the content request/Interest packet for which the corresponding Data is not available/cached in the ANP network will arrive at the GR for transit. In such a situation, the GR sends out Interest packet to all transit links. The contents which are not cached inside the TNP can be retrieved from the servers of CP. However, the CP can collaborate with the TNPs to distribute the contents (using the cache-enabled routers of the TNP or CDN server). Here, agreements between the TNP and CPs for content distribution are outside the scope of this study. Hereafter, in this study, CPs are represented by TNPs.
We denote U to be a set of users and D to be a set of the contents. We assume that a request/ Interest λ ud for content d 2 D from consumer u 2 U, which is a customer of the ANP, reaches GR k 2 K if the content d 2 D cannot be fetched from the ANP network (for example, the content requested by consumer 1). For such a request, using GRs, the ANP sends λ ud to all transit links. Upon receiving λ ud , any TNP n 2 N / that possesses a copy of the requested The internal traffic volume that passes through each internal link i 2 I is expressed as follows: where UðiÞ is a set of the consumers that use an internal link i such that UðiÞ � U. In addition, h ud 2 {0, 1} is a cache hit indicator variable, where h ud = 1 for the content d 2 D returned to consumer u 2 U from the cache storage of the ANP, and equals 0 otherwise. In addition, we use s ud to denote the size of content d needed by user u 2 UðiÞ. Further, the total traffic of content d passing through the internal link i needs to respect the link capacity C i constraint (1). However, the NDN architecture uses packet levels, which makes the content size unknown before it is received. To address this challenge, we use Frequency-Based Content Size (FBCS) described in our previous work [11] to find s ud . For the transit link t 2 T , we use ρ τ to denote the volume of the transit traffic, where ρ τ is expressed as follows:  where UðtÞ � U is the set of consumers that use the transit link τ. In addition, for the content d that is not available in the ANP network, 1 − h ud is used as a cache miss indicator variable. Further, the total volume of the transit traffic for the content d that passes through the transit link τ needs to respect the transit link capacity constraint (2). To prevent congestion on the transit links and to minimize delay, the ANP monitors its network traffic and keeps records of the historical traffic volume in the form of a traffic matrix (TM), as described in Ref. [28]. Then, the ANP uses the TM denoted X τ to learn the transit traffic characteristics. Here, X τ is a four dimensional matrix denoted K × K × T × D, where K is the number of GRs in the ANP and TNP networks, T is the time, and D indicates content names. In other words, X τ is a tensor of K × K × T × D dimensions, where an entry x t kltd indicates the number of packets for content d sent through the transit link t 2 T at each time slot t. Moreover, each outgoing face k 2 K of the GR of the ANP is connected to the incoming face l 2 K of the GR of TNP via the transit link t 2 T . Because, in NDN, contents are requested using names, we convert the content names into numeric values for ease of computation. Further, for TM prediction, we use Long Short-Term Memory (LSTM) recurrent neural networks [29], as described in Section. We chose LSTM over other prediction methods such as ARIMA and Prophet [30] because it has a cyclic connection over time and memory to temporally store the internal state information of the network. Moreover, our LSTM model is implemented in Content Controller (CC) proposed in Refs. [11,31].
To prevent congestion by alleviating the traffic load on heavily used transit link(s) and to minimize the network delay, the ANP caches the contents that have high predicted demands. The ANP can obtain free contents without paying content fees. However, for paid-content, the ANP needs to pay p nd to obtain and cache the paid-content d. For paid-content, based on user demands, the ISP sells the contents to customers, where each customer pays p ud to obtain the content d (P ud is the price of the paid-content d, while P ud = 0 for free contents). Further, we assume that p ud < p nd . More details concerning finding the optimal p nd are provided in Section.
We use f d(τ) as a cache decision variable that indicates whether or not the ANP caches the content d 2 D that passes through the transit link t 2 T . f d(τ) is given by: The amount F(p nd , γ τ ) that the ANP needs to pay to the TNP depends on the transit traffic volume P t2T g t r t and the contents that need to be cached. F(p nd , γ τ ) is expressed as follows: where γ τ is the transit fee per unit of bandwidth. For each content d, we use θ d > 0 to denote the delay tolerance threshold. Further, β d denotes the demand delay product as defined in Ref. [11]. If β d � θ d and f d(τ) = 1, the ANP pays p nd for caching the paid-content d. Otherwise, the ANP does not need to cache the paid-content d (p nd = 0), i.e., the ANP only forwards the content price p ud from its consumer to the TNP. The amount that the consumers pay to the ANP to obtain content and access bandwidth is expressed as follows: for paid-content; P t2T g t r t ; otherwise: The utility U A (p ud , p nd , c r ) of the ANP is based on (i) the payment C(p ud , γ i ) from customers to the ANP for Internet access and for downloading the cached paid-contents; (ii) the payment F(p nd , γ τ ) that the ANP pays to the TNP for both the transit bandwidth and the cached paidcontent d; and (iii) the cost of cache storage deployment: P r2R c r p c . We use p c as a price per unit of cache storage and c r as the size of the cache storage of a cache-enabled router r 2 R. U A (p ud , p nd , c r ) is given by: where c r (s d ) is the size of the cache storage required to cache contents of the size s d .

Joint deep learning and auction for congestion-aware caching (DeepAuC)
We present our deep learning model for predicting transit traffic in Subsection. The output of our prediction helps the ANP to identify the future volume of the transit traffic and the contents that have high demands over the transit links, in light of which, the ISP makes cache decisions. Because paid-contents require payments to be downloaded and cached, in Subsection, we describe in detail our auction model, which helps the ANP to obtain paid-content at an optimal price.

Deep learning model
To prevent congestion on transit links, we propose a deep learning model that helps the ISP to record the transit traffic volume, learn the transit traffic characteristics, and predict the traffic volume that needs to be sent over the transit link(s). This helps the ISP to identify the contents that have high traffic volume/demands over the transit link(s). To reduce the traffic volume on the transit links, the ANP downloads and caches such identified contents. In our prediction model, we learn the transit traffic characteristics from the recorded network traffic in the form of a traffic matrix (TM) denoted X τ . We consider X τ to have dimen- where in the X τ entries, we use x t kl to represent the traffic volume that goes through the transit link t 2 T from the outgoing face k 2 K of the GR of the ANP to the incoming face l 2 K of the GR of the TNP. We transform x t kl to x t klt by adding t as the time dimension. Furthermore, to identify the contents that pass through the transit link t 2 T , we transform x t klt to x t kltd by adding d as the content dimension. Then, we use X τ to predict the future TM denoted Y τ using the LSTM recurrent neural network described below.
LSTM network overview. The LSTM [29] maps the input X t to the output Y t by computing the following function: where σ is the sigmoid function, f t is the forget gate, y t−1 is the input from the previous layer, i.e., the output of the previous layer, and b f is the bias. The output of the sigmoid function is a number between 0 (which means forget this value) and 1 (which means keep this value), which is used to decide the value to add to the cell state c t−1 . To decide which information to store in the LSTM cell, two functions are used, where the sigmoid function at the input gate i t is used to decide which value to update, while the tanh function is used to decide the new candidate values to add to the cell state denoted c 0 t : After computing the above functions, the next step is to update the cell state information from cell state c t−1 to c t by computing the following function: Finally, the last step is to decide the output, where the sigmoid function is used to decide which part of the cell state to output and the tanh function is used to fit the output value in the range between 0 and 1: Feeding the traffic matrix into the LSTM network. Our aim is to prevent congestion before it happens on transit links by predicting the TM. We use X t to denote a vector of the TM X τ at the time slot t. We transform TM X τ to X t by concatenating each row from top to bottom. Here, we consider TM prediction by solving X t using the historical measured transit traffic X t−1 , X t−2 , . . .X t−T , which requires continuous feeding and learning vectors of the traffic. However, to minimize the complexity of the computation, we adopt the learning window described in Ref. [28]. The learning window is used to fix the number of time slots T of the measured transit traffic vectors that need to be fed into the LSTM network to predict TM Y t , where we use Y t to denote a vector of the predicted TM Y τ at the time slot t.
Prediction methodology. As a prediction methodology, the measured transit traffic data are divided into two datasets. The first dataset (a training dataset) is used during the training phase to make the model and to identify the model parameters. Furthermore, the second dataset (the validation or testing dataset) is used to evaluate the performance of the prediction model. The workflow of our prediction model is summarized as follows.
• The prediction phase: At each time slot t, the model calculates the output Y t from the input X t . Here, the inputs are the previous observations of the transit traffic X t−1 , X t−2 , . . .X t−T .
• The training phase: In this phase, we identify the model parameters by feeding the training data into the LSTM model and adjusting learning hyperparameters.
• The validation phase: After training and prediction, the final phase is validation. In this phase, we feed a validation dataset into the LSTM model and evaluate the accuracy of our prediction using the Mean Square Error (MSE) function described below: where x t kltd is the ground truth value and y t kltd is the predicted value.
To prevent congestion on each transit link t 2 T , the predicted traffic volume for each transit link t 2 T needs to satisfy the following constraint: where r 0 t is the predicted traffic volume on each transit link τ. If the ANP network cannot satisfy Constraint in (14), congestion will occur on link τ.

Auction model for congestion-aware caching
When the ANP network cannot satisfy Constraint (14), to prevent congestion and reduce the traffic volume on the transit links, the ANP downloads and caches contents that have high predicted traffic volume. However, downloading and caching paid-contents require payments from the ANP to the TNPs. Therefore, to obtain the paid-content at an optimal price that minimizes total payment of the ANP, we propose an auction approach. The workflow of the proposed auction model is shown in Fig 2 and works as described below.
• Step 1: Each consumer u 2 UðiÞ requests each content d by sending an Interest packet λ ud via an internal link i 2 I.

•
Step 2: For the requested content d that is not cached inside the ANP network, when the ANP network cannot satisfy Constraint (14) and the requested content d has high predicted traffic volume y t kltd and needs to use the transit link τ. Then, the ANP requests that content by sending a request λ ud to all transit links.
• Step 3: For free content, any TNP, which has the requested content in its cache storage, returns the content to the ANP. However, for paid-content, each TNP n returns a bid (b nd , s nd ) and p ud , where b nd is the content price, s nd is the size of the content d submitted by TNP n, and p ud is the consumer price.
• Step 4: The ANP delivers free content to the consumer for free and the workflow ends. However, for paid-content, the workflow continues by returning the content price p ud to the consumer. Simultaneously, the ANP takes all the bids from the TNPs and performs an evaluation of the bids via reverse auction to select the winner and calculate the optimal price p � nd of each content d. • Step 5: The ANP informs the winner and pays the optimal price p � nd to each winning TNP n for each content d that needs to be cached.
• Step 6: For paid-content d, each consumer u 2 UðiÞ needs to pay the content price p ud � p � nd as the fixed price from the TNP. In other words, each consumer u 2 UðiÞ needs to pay p ud for each paid-content d 2 D, whether or not the content d is cached inside the ANP network. • Step 7: The ANP caches the selected and delivered contents in its cache storage to serve future requests from consumers of the same contents.
• Step 8: Finally, the ANP delivers the paid-content to its consumer.
Auction model. The ANP needs to pay the price p nd to cache the paid content d, which is predicted to come from a highly congested transit link by our prediction model. We use Reverse Auction Congestion-Aware Caching (RACAC) to obtain each paid content d at the lowest price. We chose reverse auction over other auction mechanisms because reverse auction allows the ANP as a buyer to request bids from multiple TNPs (sellers) and select the bidding value that minimizes its payments. In addition, RACAC allows TNPs to bid the prices at which they are willing to sell their contents. Here, free contents are not considered in RACAC.
Definition 0.1 (RACAC). In our RACAC, we consider that the ANP needs to obtain the high predicted content d, which requires using the transit link from the TNPs at the lowest content price. The ANP floods Interest packet as demand to the transit link(s). Upon receiving an Interest packet, any TNP n 2 N that has the requested content submits a bid b nd . Then, the ANP chooses the bidding value that minimizes its payment.
In the RACAC, each TNP n has its own valuation denoted G n (s nd ) for the content d, where G n (s nd ) is given by: where g nd is a true valuation of TNP n for the paid-content d. However, when TNP n does not participate in RACAC, it is assigned a valuation of infinity. In addition, we use G N to denote the minimum valuation of all the TNPs, where G N is expressed as follows: where s � d ¼ fs � nd g is a vector containing the highest predicted contents that need to be cached to prevent congestion on the transit links.
To analyze RACAC and determine the optimal price p � nd for the content d, we use the Vickrey-Clarke-Groves (VCG) approach [32]. We chose VCG over other approaches because VCG is simple and easy to implement. In addition, VCG guarantees a truthful outcome and a social-optimal solution. Therefore, based on the VCG approach, each TNP n 2 N needs to compensate for any harm that it (TNP n) may cause to other TNPs by participating in RACAC. We calculate the total minimum valuation G −n of the TNPs other than TNP n as follows: where s � d 0 = fs � md g is a vector containing the highest predicted contents that need to be cached to prevent congestion on the transit links when TNP n does not participate in RACAC. Therefore, the social-optimal price p � nd for the content d that the ANP needs to pay the winner is given by where W � N is the set of winners. To make sure that RACAC guarantees a truthful outcome and a social-optimal solution, below, we define and prove the essential properties of RACAC. Definition 0.2 (Truthfulness of RACAC). We consider RACAC to be truthful if every TNP n 2 N chooses to bid its true valuation (b nd = g nd ) over other possible bidding values (b nd 6 ¼ g nd ). RACAC is truthful if it guarantees that each bidding value b nd = g nd of TNP n 2 N maximizes the utility of TNP over the other possible bidding values (b nd 6 ¼ g nd ) for the content d.
Theorem 0.1. Truthfulness of RACAC. Prrof. Here, to prove the truthfulness of RACAC, we use critical payment and the monotonicity conditions described in Ref. [33].
To satisfy the monotonicity condition, we assume that a TNP n 2 N sends to auction two bidding values b 0 nd and b nd for the content d, where b nd < b 0 nd . RACAC selects the TNP n 2 N whose bidding value minimizes Eq (16) as the winner. With the increasing order of the bidding values, if TNP n 2 N wins RACAC by bidding b 0 nd , and because b nd < b 0 nd , TNP n 2 N will also win the RACAC for any bidding value b nd < b 0 nd . To satisfy critical payment, each TNP n 2 N with a minimum bidding value smaller than that of the other TNPs always wins RACAC and is paid p � nd guaranteeing non-negative utility (p � nd � g nd ), where p � nd is considered to be the critical payment. Therefore, when considering both the monotonicity and critical payment conditions, for each TNP n 2 N , submitting a bidding value ðb 0 nd 6 ¼ g nd Þ that diverges from its true valuation (g nd = b nd ) will not be beneficial and therefore the TNP will not be better off. In conclusion, RACAC is truthful; therefore, it guarantees truthful bidding (b nd = g nd ) to be a dominant strategy for every TNP n 2 N . Definition 0.3 (The utility of the TNP for paid-content). For the content d 2 D, we assume that each TNP n 2 N submits a bid b nd . If TNP n 2 N wins the auction, it will receive p � nd as payment. Otherwise, TNP n 2 N receives zero payment if it has lost the auction. The utility U n of any TNP n 2 N is expressed as follows: From Eq (19), we can define the individual rationality as follows. Definition 0.4 (Individual rationality). We consider RACAC to be individually rational if and only if every TNP n 2 N does not have negative utility. In other words, p � nd � g nd and U n � 0 for every TNP n 2 N .
Theorem 0.2. Individual rationality. Proof. Here, to prove that RACAC is individually rational, we use the individually rational property defined in Ref. [33]. Based on Theorem 0.1, RACAC guarantees individual rationality, because RACAC selects the TNP n 2 N with the minimum bidding value as the winner, where the winner n 2 W receives p � nd as payment, which is considered to be the critical payment. Therefore, regardless of the bidding values of the other TNPs, the loser ANP receives p � nd ¼ 0, while the winner TNP receives p � nd � b nd as payment, which guarantees that U n � 0 (Eq 19). In other words, no TNP receives negative utility.

Problem formulation
We formulated a joint deep learning and auction-based approach for congestion-aware caching as an optimization problem that minimizes the content caching cost. Therefore, the

RACAC Cost Minimization (RACAC-CM) problem is given by
X n2N X d2D f n dðtÞ s nd � X r2R c r ; 8r 2 R; ð20f Þ f n dðtÞ 2 f0; 1g; g nd 2 ½0; þ1Þ: Constraints: Constraint (20a) ensures that the volume of the transit traffic at each transit link t 2 T is less than or equal to c τ . We use Constraint (20b) to ensure that each paid-content d is delivered by one TNP n 2 W. Further, to ensure that each content size s nd of TNP n 2 W is greater than or equal to the content size s ud needed by the customer of the ANP, we use Constraint (20c). Constraint (20d) (b nd < p nd ) ensures individual rationality. Constraint (20e) guarantees that the content that needs to be cached enables the ANP to reduce the transit traffic volume and network latency. Constraint in (20f) ensures that the paid-contents that need to be kept in cache storage are less than or equal to the cache capacity c r of the ANP.
Variables: We use f d ¼ ff n dðtÞ g; 8n 2 N; d 2 D as a vector of the decision variables, and f n dðtÞ is expressed as follows: Therefore, g nd is private information and each TNP n 2 N does not share g nd with the ANP. We transform the RACAC-CM problem into a RACAC Payment Minimization (RACAC-PM) problem by replacing g nd with b nd (b nd is known by the ANP), where the RACAC-PM problem is given by Hereafter, we focus on solving Eq (22), where Eq (22) has the same constraints and variables as Eq (20). Theorem 0.3. The NP-hard hardness of the RACAC-PM problem, Eq (22).
Proof. To prove that the RACAC-PM problem, Eq (22), is NP-hard, we formulate it in its conjunctive normal form [34] by considering b d to be a vector of the bidding values in the RACAC-PM. Therefore, B = B 1 \ B 2 \ . . . \ B m is the conjunctive normal form, where B m is a set of bidding values from the TNPs. Further, each B m is defined as a disjunction of m bids {b 1d } [ . . . [ {b md }. We assume that each bid has no negative bidding value b md for the content d. Further, for every value b md , we can transform B into an arithmetic form χ using f m dðtÞ as described in Eq (21). Then, by interchanging \ with � and [ with +, χ becomes an NP-hard problem, because χ � 1 for 0 � f m dðtÞ � 1.

Winner and price determination
Algorithm 1 Winner Determination. Input: C, ρ, c, b d , p d , s d , N , b

1:
The formulated problem in Eq (22) is NP-hard, which is proved in Theorem 0.3. Even the NP-hard problem can be solved using exhaustive search, when the size of the problem becomes large, the exhaustive search requires high computational resources. Therefore, as described in [35], it is possible to analyze and design a faster algorithm than exhaustive search for solving specific NP-hard problem. For this reason, to solve Eq (22), we propose two algorithms: Winner Determination (Algorithm 1) and Price Determination (Algorithm 2). We use the VCG approach [32] to design both the algorithms. In addition, in the formulated problem, we assume that the ANP has sufficient bandwidth for internal links. Therefore, in both algorithms, we focus on the transit links that have limited bandwidth capacities.
In our proposal, we use Algorithm 1 to determine the TNP n 2 N that can deliver the requested content d at a minimum price/ bidding value. For input, we use a vector of transit links having capacities C, a vector of predicted volumes of transit traffic ρ, a vector of cache capacities c, a set of TNP N , a vector of bidding values b d , a vector of fixed content prices p d that consumer pays for each content d, a vector of content sizes s d , the delay tolerance threshold θ d > 0, and the demand delay product β d . Algorithm 1 performs initialization on line 3. In addition, to identify the content size (lines 4−9), we use support count, as described by Ref. [11]. The content size, which has high value of support count, is treated by the ANP as the

Simulation setup
For the simulation setup, we use the GEANT topology as a realistic network topology. The GEANT network interconnects research centers and universities in Europe [41]. To map GEANT topology with the ANP and TNPs for auction, we extend GEANT topology with 20 consumers and one CP. In the topology, we have 23 GRs, where we connected 20 consumers with one GR for forming the ANP network. The GR of the ANP is connected to the remaining 22 GRs, where we assume that 22 GRs are the GRs of the TNPs. In other words, in our action, we have one ANP and 22 TNPs. This mapping is clearly visible in [40] (GEANT2_ deep_cache_topology.txt). In the implemented GEANT topology, the link capacities between the consumer nodes and GRs are in the range of 6−10 Mbps, while the link capacity between each two GRs is 10 Mbps. For each link, we use a queue of 100 packets and the transmission delay equals β d = 10 ms and θ d = 9 ms. In addition, each consumer u 2 U generates λ ud = 300 interest packets per second. We use three types of contents: video, news, and music files.
To get the dataset, in NDN, we use GEANT network topology described in [40] (filename: GEANT2_deep_cache_topology.txt). We collected network traffic data generated by 20 consumers for a period of 4 hours for both the training and testing purposes. In addition, in both training and testing datasets, at each time slot (0.5 seconds), we have content names, incoming and outgoing faces, and content size in terms of kilobyte as features. At the GR of the ANP, outgoing faces record the traffic going outside the ANP network, while incoming faces record the traffic coming inside the ANP network. We used the training dataset to make the LSTM model and identify the LSTM model parameters. In addition, we used the testing dataset to test the performance of our prediction model. The training and testing datasets are available in [40] (training_dataset3.csv and testing_dataset3.csv), while the source code for collecting the dataset is available with the filename GEANT2_deep_cache. cpp [40].
For prediction purpose, we fed the collected traffic data into our LSTM model to predict future volume of the transit traffic that needs to pass through the transit links. To determine the LSTM model, we repeatedly fine-tuned hyperparameters such as a number of layers and neurons, dropout, number of epochs, and learning rate until we obtain better performance. Such approach is practical in deep learning for finding the appropriate model structure [42]. Therefore, our LSTM model reached to the good performance when it had one input layer, four hidden layers, and one output layer. In our LSTM model, we used dropout regulation technique to prevent overfitting, where the dropout parameter was set to 0.2. Each layer had 128 units/neurons except for the output layer which had one neuron. In addition, we used the Adam optimizer [43] to update the model and MSE as the error function. The Adam optimizer is an extension of stochastic gradient descent for updating deep learning network weights, where the weights update depends on the training dataset. Further, we sorted the predicted traffic at each transit link in descending order and deployed cache storage on the GRs connected to the transit links that had a high predicted traffic volume. We used cache storage in the range from c r = 10, 000 to c r = 1, 000, 000 data packets, where each packet had a payload of size 1024 bytes. We assumed a transit fee γ τ = 0.63 USD per 1 Mbps and a cache storage price of p c = 0.003625 USD per 1 Mb. In addition, each consumer u 2 U pays 50 USD as a monthly access bandwidth fee per 1 Gb [11].
For the proposed auction model, to cache the contents that have high predicted demands, we consider 22 TNPs that can provide contents to the ANP for caching on payment (paidcontent) or without payment (free content); however, we only focus on the paid-contents. Further, the bidding value b nd for each content d submitted by each bidder n 2 N is generated randomly within the range from b nd = 2 USD to b nd = 8 USD, while the consumer price p ud is generated randomly within the range from p ud = 6 USD to p ud = 12 USD. We obtain the ANP, TNP, and CP profits for the paid-contents using the content distribution and reselling approach introduced by Kreuzer et. al. [44]. In this approach, for each additional time the cached content d is sold, each ANP and TNP n 2 W receive 15% of the p ud . In other words, the ANP pays p � nd for caching and the first sale of each content d. Then, from the second sale of the cached content d, the ANP forwards 85% of the p ud to the TNP n 2 W for each content d sold. In addition, each TNP n 2 W receives 15% of the p ud as the content distribution price and forwards 70% of the p ud to the CP.
In the performance evaluation, we did not include all components of our proposal in ndnSIM because we use different tools (Keras with TensorFlow on the back-end and pandas) and languages (Python, Julia, and C++), which require time and human resources to redesign/ extend the ndnSIM simulator. However, to reproduce our proposal and results, we summarize the connection between all components of our proposal and all the procedures for utilizing our source code available in [40] as follows: • First, in ndnSIM, we used GEANT2_deep_cache.cpp and GEANT2_deep_cache_topology.
txt to collect dataset. We run GEANT2_deep_cache.cpp two times (each time, for a period of 4 hours) for collecting training and testing datasets. Then, we save the collected datasets in rate_trace_GEANT2_myproposal.txt files.
• Second, we perform data cleaning by removing unwanted features such as face description and type. Then, we save the outputs in .csv format (traffic_dataset_4_train3.csv, traffic_data-set_4_test3.csv).
• Third, we map the collected datasets to the topology to obtain the connection between nodes, bandwidth, metric, delay, and queue. Then, we identify the names of the contents that passed in both outgoing and incoming faces of the transit links. The Python source codes for data preparation are available in Data_Preparation3.py. We save the output of data preparation in .csv format (training_dataset3.csv and testing_dataset3.csv).
• Fourth, we feed the cleaned and prepared datasets in LSTM model, where we use training_ dataset3.csv for the training dataset and testing_dataset3.csv for the testing dataset. Then, we predict the future demands for contents need to pass through the transit links, where the output of our prediction is saved in network_traffic_prediction3.csv. The python source codes of our prediction are available in Prediction_Traffic3.py [40].
• Fifth, because we use 20 time slots for the window size or the loopback value which cause our prediction approach to start having the predicted transit traffic from 21st time slot, we removed the rows that have missing the predicted transit traffic (the first 20 time slots). Then, we save the final result in network_traffic_prediction3.csv [40].
• Sixth, we feed the prediction output (network_traffic_prediction3.csv) in our auction codes and randomly generate the bidding values for purchasing the contents that have high predicted future demands and need to pass through the transit links. The Julia source codes for our auction are available in gurobi_vcg_01.jl [40].
• Finally, to cache the purchased contents that have high predicted future demands and need to pass through the transit links, we update GEANT2_deep_cache.cpp and implement cache storage in ndnSIM to prevent congestion and minimize transit bandwidth consumption. The source codes for implementing cache storage in ndnSIM are available in GEANT2_ deep_cache_update [40].

Simulation results
All our data and source code used to generate the results have been made public for the betterment of the research community and are online and available in [40]. To collect the transit traffic data, we ran the ndnSIM simulation two times, the first time to collect training dataset (traffic_dataset_4_train3.csv [40]) and the second time to collect the testing dataset (traffic_da-taset_4_test3.csv [40]). Fig 3 shows the ground truth of the network throughput. After analyzing the collected datasets, Fig 3 demonstrates that the packet drops due to congestion start after 64 second. The throughput degradation due to congestion from 64 second to 128 second causes not only packet drops but also packet retransmissions (the source code for generating this figure is available with the filename Data_Preparation3.py [40]).
Further, to analyze the transit traffic of each GR k 2 K, Fig 4 shows the volume of traffic that passes through each GR k 2 K (the source code for generating this figure is available with the filename Prediction_Traffic3.py [40]). We can see in this figure that R23 has a large volume of transit traffic because R23 is the GR of the ANP, while the remaining routers are the GRs of the TNPs. In other words, in the ANP, all the consumer transit traffic needs to pass through R23. Hereafter, we use cache-enabled routers as GRs with CC functionalities.
To prevent congestion and high delays on the transit links, where the transit links connect the GRs, we use both training and testing datasets to predict the future traffic volume. The collected transit traffic data over time are treated as time series data. To predict the transit traffic volume using the collected time series dataset and the LSTM model, we use 20 seconds for the window size or the loop_back value, where the loop_back value defines the number of previous time steps to be used as input. In addition, we use MinMaxScaler to shape the input values ranging from 0 to 1. This helps to prevent large margins between the collected input values. We use the training dataset to make an LSTM model and the testing dataset to test the model. After the prediction, we apply an inverse transformation to convert the transit traffic volume into a presentable format. Fig 5 shows the ground truth of the network throughput alongside the predicted network throughput. In this figure, we compare our LSTM model to the AutoRegressive Integrated Moving Average (ARIMA) model described in Ref. [45]. The simulation results show that the LSTM has a better performance than ARIMA (the source code for generating Fig 5 is available with filename Prediction_Traffic3.py [40]). LSTM performs well because it has a cyclic connection over time and memory that can be used to temporally store the internal state information of the prediction model.
After predicting the transit traffic volume, we sort the transit demands for contents over the transit links in descending order. In this way, the ANP identifies the most requested contents over the transit links and obtains these contents via our auction model to prevent congestion and high delays (the source code for the auction model is available with filename guro-bi_vcg_01.jl [40]). For the cached paid-contents, the simulation results in Fig 6 show an increase in the profits of the ANP, TNPs, and CP with increasing consumer demands. The ANP profit is based on selling contents, selling access bandwidth, and bandwidth savings due to transit traffic reduction. Further, the TNP profit is based on transit bandwidth payments from the ANP and content distribution payments. The CP generates profits by selling the paid-contents, and the ANP and TNPs need to forward to CP a certain percentage of the revenue earned by reselling the cache contents. Participating in selling contents helps both the ANP and TNP to increase their profits, and this can motivate both the TNPs and ANPs to adopt in-network caching of NDN architecture.  After predicting and identifying the transit links that have high traffic volume, we deployed cache storage to reduce the volume of the transit traffic. The simulation results in Fig 7 show the average network throughput of our proposed method (DeepAuC) after deploying cache storage. In addition, we compared the throughput of our proposal to other similar congestion control approaches: NCFCC [20] and MIRCC [46]. The simulation results demonstrate that our proposal and MIRCC have nearly the same performance. In the beginning, both DeepAuC and MIRCC perform better than NCFCC. DeepAuC is based on transit traffic prediction. Conversely, MIRCC calculates the appropriate rate of traffic to send through each link. The weakness of NCFCC prior to 115 second compared to the DeepAuC and MIRCC approaches is that each node generates requests with an initial window size. Then, at the arrival of the data packet, the node increases the window size. However, on timeout or on reception of Reduce Sending Rate (RSR) message, the node needs to reduce the window size. Therefore, adjusting the window size based on the received data packet or timeout contributes to the slow start of NCFCC, causing the throughput of NCFCC to be very low for the first 115 seconds. When there is no timeout or RSR, NCFCC keeps increasing the window size, which contributes to its better performance after 115 second. The source code for our proposal after deploying cache storage is available with filename GEANT2_deep_cache_update.cpp [40]. The throughput data for generating Fig 7 and the source code are available with filename Géant_throughput_ comparison.py [40].
Because we measure the network throughput in terms of packets sent and received over time, we can trace the number of packets sent over the transit links using the different congestion control mechanisms being compared in this paper. The simulation results in Fig 8 show the total packets sent and the corresponding cache hits or misses. MIRCC and NCFCC have negligible cache hits because these mechanisms do not consider content caching as a way of preventing congestion. In other words, in case of cache misses, MIRCC and NCFCC have to send demands to upstream GRs, which contributes to their high network throughput in Fig 7. Conversely, DeepAuC prevents congestion by caching contents that have high predicted demands over the transit links. Fig 8 clearly demonstrates that DeepAuC has a remarkable number of cache hits and, therefore, reduces the number of packets that need to be sent to upstream GRs over transit links, i.e., the network throughput. The data and source code for generating Fig 8 are available with filenames cs-trace.csv and cs-trace.py, respectively [40].
Network congestion increases the number of dropped and retransmitted packets, which contributes to increases in the network delay. Therefore, to evaluate the performance of our proposal, we compare our DeepAuC to NCFCC and MIRCC in terms of the delay. Fig 9 shows that both DeepAuC and MIRCC experience lower delays than NCFCC because NCFCC is a window-based congestion control, where the nodes increase the number of Interest packets based on the number of received Data packets. This window-based congestion control approach is characterized by high variations in the delay. In this figure, we use solid red lines to depict the median. The data for the network delay are available with filename delay.csv [40].

Conclusions
In this paper, we proposed a joint deep learning and auction-based caching approach in NDN to prevent congestion before it happens and avoid packet loss and high end-to-end delay. In our approach, the ISP uses collected transit traffic data to predict the future transit traffic volume. In this way, the ISP identifies overloaded transit links that may experience congestion in the future and the most requested contents that need to pass through these links. To prevent congestion, which may occur in the future on these overloaded transit links, the ISP caches identified contents to limit the transit traffic volume. However, downloading and caching paid-contents require the payment of content prices. Therefore, we proposed an auction model that helps the ISP to obtain paid-content at an optimal price, where the ISP sells cached contents to its customers. Through extensive simulation, the simulation results show that our proposal can prevent congestion, minimize end-to-end delay, and help the ISP to monetize its cache resources.