緩存處理方法、裝置及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明設及互聯(lián)網(wǎng)技術,尤其設及一種緩存處理方法、裝置及系統(tǒng)。
【背景技術】
[0002] 隨著互聯(lián)網(wǎng)技術的飛速發(fā)展W及互聯(lián)網(wǎng)用戶數(shù)量的快速增長,基于傳輸控制協(xié)議 (^ansmission Control Protocol,簡稱:TCP)/網(wǎng)絡互連協(xié)議(Internet Protocol,簡稱: IP)的現(xiàn)有互聯(lián)網(wǎng)逐漸暴露出諸多問題。其中,一個重點的發(fā)展方向就是在互聯(lián)網(wǎng)的網(wǎng)元中 部署繪存。
[0003] 現(xiàn)有技術中,緩存決定的策略采用全存(ALWAYS), ALWAYS是一種對經過某一網(wǎng)元 節(jié)點緩存器的所有內容都緩存的策略。具體的,首先通過每個網(wǎng)元節(jié)點在接收到包含內容 前綴信息的興趣(interest)包后,該網(wǎng)元節(jié)點i查詢該興趣包中內容前綴信息對應的內容 是否已經存儲在該網(wǎng)元節(jié)點i的緩存中,若是,則將存儲的相應內容返回給請求該數(shù)據(jù)的 網(wǎng)元節(jié)點;若否,該網(wǎng)元節(jié)點i則將該興趣包中包含的內容前綴信息存儲在該網(wǎng)元節(jié)點i維 護的轉發(fā)信息庫(Forwarding Information Base,簡稱FIB)中,并將該興趣包轉發(fā)給下一 跳網(wǎng)元節(jié)點i+1進行上述操作;之后,當數(shù)據(jù)包傳輸給該網(wǎng)元節(jié)點i時,該網(wǎng)元節(jié)點i通過 查詢FIB中是否存有該數(shù)據(jù)包的內容前綴信息,若是,則將該數(shù)據(jù)包的內容緩存到該網(wǎng)元 節(jié)點上;若否,則丟棄該數(shù)據(jù)包。
[0004] 現(xiàn)有的緩存決定策略中,一個數(shù)據(jù)包在經過各個網(wǎng)元節(jié)點時,在緩存區(qū)存儲空間 允許的條件下,各個網(wǎng)元節(jié)點就會緩存該數(shù)據(jù)包中的相應內容,現(xiàn)有的緩存決定策略會造 成相容內容在各個網(wǎng)元節(jié)點的大量重復存儲,進而造成。
【發(fā)明內容】
陽〇化]本發(fā)明提供一種緩存處理方法、裝置及系統(tǒng),用于在考慮不同數(shù)據(jù)包內容的流行 度的情況下,有效地利用各網(wǎng)絡節(jié)點的緩存資源,提高效率。
[0006] 本發(fā)明的第一個方面是提供一種緩存處理方法,包括:
[0007] 接收下一跳節(jié)點發(fā)送給請求方的包含數(shù)據(jù)內容的第一數(shù)據(jù)包;
[0008] 將所述數(shù)據(jù)內容對應的本節(jié)點的逗留時間與所述數(shù)據(jù)內容對應的其他節(jié)點的逗 留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存區(qū);
[0009] 將所述第一數(shù)據(jù)包發(fā)送給所述請求方。
[0010] 結合第一方面,在第一種可能的實現(xiàn)方式中,在所述接收下一跳節(jié)點發(fā)送給請求 方的包含數(shù)據(jù)內容的第一數(shù)據(jù)包之前,還包括:
[0011] 接收請求方發(fā)送的興趣包,所述興趣包包含數(shù)據(jù)內容前綴信息;
[0012] 根據(jù)所述數(shù)據(jù)內容前綴信息查詢所述緩存區(qū)是否已存儲與所述數(shù)據(jù)內容前綴信 息對應的數(shù)據(jù)內容;
[0013] 若是,則將包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間的第二數(shù)據(jù)包發(fā)送給請求 方;
[0014] 若否,則更新本節(jié)點的待定興趣表PIT,并將所述興趣包轉發(fā)給下一跳節(jié)點。
[0015] 結合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述更新 本節(jié)點的待定興趣表PIT,并將所述興趣包轉發(fā)給下一跳節(jié)點,包括:
[0016] 查詢所述PIT中是否存在與所述數(shù)據(jù)內容前綴信息對應的條目,若是,則將所述 數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識添加至所述條目下;
[0017] 若否,則創(chuàng)建新的條目,將所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識添加至所 述新的條目下;
[0018] 查詢轉發(fā)信息庫FIB,將所述興趣包轉發(fā)給下一跳節(jié)點。
[0019] 結合第一方面及第一方面的第一種可能的實現(xiàn)方式和第二種可能的實現(xiàn)方式,在 第=種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)包還包括:下一跳節(jié)點的逗留時間;
[0020] 所述將所述數(shù)據(jù)內容對應的本節(jié)點的逗留時間與所述數(shù)據(jù)內容對應的其他節(jié)點 的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存區(qū), 包括:
[0021] 對所述本節(jié)點的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下一跳節(jié) 點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);
[0022] 在所述將所述第一數(shù)據(jù)包發(fā)送給請求方之前,還包括:
[0023] 將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間;
[0024] 所述將所述第一數(shù)據(jù)包發(fā)送給請求方,包括:
[00巧]根據(jù)PIT中所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,將所述第一數(shù)據(jù)包發(fā)送 給請求方;所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間。
[00%] 結合第一方面及第=種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括:
[0027] 若所述本節(jié)點的逗留時間小于或等于所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下 一跳節(jié)點的逗留時間,則判斷所述緩存區(qū)是否已滿,若否,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);若是,則將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間,并 將所述第一數(shù)據(jù)包轉發(fā)給請求方;
[0028] 所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間。
[0029] 結合第一方面的第一種可能的實現(xiàn)方式及第二種可能的實現(xiàn)方式,在第五種可能 的實現(xiàn)方式中,所述興趣包還包括:上一跳節(jié)點的逗留時間;
[0030] 所述更新本節(jié)點的待定興趣表PIT,并將所述興趣包轉發(fā)給下一跳節(jié)點,包括:
[0031] 查詢所述PIT中是否存在與所述數(shù)據(jù)內容前綴信息對應的條目,若是,則將所述 數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,W及所述數(shù)據(jù)內容前綴信息對應的所述上一跳節(jié) 點的逗留時間添加至所述條目下;
[0032] 若否,則創(chuàng)建新的條目,將所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,化及所述 數(shù)據(jù)內容前綴信息對應的所述上一跳節(jié)點的逗留時間添加至所述新的條目下;
[0033] 將所述本節(jié)點的逗留時間覆蓋所述興趣包中的上一跳節(jié)點的逗留時間;
[0034] 查詢轉發(fā)信息庫FIB,將所述興趣包發(fā)給下一跳節(jié)點。
[0035] 結合第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述第一 數(shù)據(jù)包還包括:下一跳節(jié)點的逗留時間;
[0036] 所述將所述數(shù)據(jù)內容對應的本節(jié)點的逗留時間與所述數(shù)據(jù)內容對應的其他節(jié)點 的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存區(qū), 具體包括:
[0037] 對所述PIT中所述數(shù)據(jù)內容前綴對應的所述上一跳節(jié)點的逗留時間、所述本節(jié)點 的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下一跳節(jié)點的逗留時間進行比較, 若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存區(qū);
[0038] 在所述將所述第一數(shù)據(jù)包發(fā)送給請求方之前,還包括:
[0039] 將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間;
[0040] 所述將所述第一數(shù)據(jù)包發(fā)送給請求方包括:
[0041] 根據(jù)PIT中所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,將所述第一數(shù)據(jù)包發(fā)送 給請求方;所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間。
[0042] 結合第一方面W及第一方面的第六種可能的實現(xiàn)方式,在第屯種可能的實現(xiàn)方式 中,還包括:
[0043] 若所述本節(jié)點的逗留時間小于或等于所述PIT中所述數(shù)據(jù)內容前綴對應的所述 上一跳節(jié)點的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下一跳節(jié)點的逗留時 間,則判斷所述緩存區(qū)是否已滿,若否,則將所述數(shù)據(jù)內容緩存至緩存區(qū);若是,則將所述本 節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間,并將所述第一數(shù)據(jù)包轉 發(fā)給請求方。
[0044] 結合第一方面的第五種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述將所 述數(shù)據(jù)內容對應的本節(jié)點的逗留時間與所述數(shù)據(jù)內容對應的其他節(jié)點的逗留時間進行比 較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存區(qū),包括:
[0045] 對所述PIT中所述數(shù)據(jù)內容前綴對應的所述上一跳節(jié)點的逗留時間、所述本節(jié) 點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);
[0046] 在所述將所述第一數(shù)據(jù)包發(fā)送給請求方之前,還包括:
[0047] 將所述本節(jié)點的逗留時間添加至所述第一數(shù)據(jù)包中;
[0048] 所述將所述第一數(shù)據(jù)包發(fā)送給請求方,包括:
[0049] 根據(jù)PIT中所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,將所述第一數(shù)據(jù)包發(fā)送 給請求方;所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間。
[0050] 結合第一方面W及第一方面的第八種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式 中,還包括:
[0051] 若所述本節(jié)點的逗留時間小于或等于所述PIT中所述數(shù)據(jù)內容前綴對應的所述 上一跳節(jié)點的逗留時間,則判斷所述緩存區(qū)是否已滿,若否,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);若是,則將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間,并 將所述第一數(shù)據(jù)包轉發(fā)給請求方。
[0052] 結合第一方面W及第一方面的上述各個可能的實現(xiàn)方式,在第十種可能的實現(xiàn)方 式中,逗留時間通過W下公式獲得: 陽化引 /(巧(W二聲-y^(l -(-產)
[0054] 其中,所述f(STk(i))為數(shù)據(jù)內容k在本節(jié)點i的逗留時間,所述x(i)為本節(jié)點i 的緩存容量,所述Ak(i)為所述數(shù)據(jù)內容k在本節(jié)點i的到達率,所述iik(i)為其他數(shù)據(jù) 內容到達率,通過本節(jié)點i的總到達率A (i)減去所述Ak(i)獲得所述
[0055] 結合第一方面W及第一方面的上述各個可能的實現(xiàn)方式,在第十一種可能的實現(xiàn) 方式中,逗留時間通過W下公式獲得:
[0057] 其中,所述f (STk(i))為數(shù)據(jù)內容k在本節(jié)點i的逗留時間,所述為數(shù)據(jù)內 容k第j次緩存至本節(jié)點i的時刻,所述為所述數(shù)據(jù)內容k第j次從本節(jié)點i被替 換的時刻,所述N為統(tǒng)計總次數(shù)。
[0058] 本發(fā)明的第二個方面是提供一種緩存處理裝置,包括:
[0059] 接收模塊,用于接收下一跳節(jié)點發(fā)送給請求方的包含數(shù)據(jù)內容的第一數(shù)據(jù)包; W60] 比較模塊,用于將所述數(shù)據(jù)內容對應的本節(jié)點的逗留時間與所述數(shù)據(jù)內容對應的 其他節(jié)點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存 至緩存區(qū);
[0061] 發(fā)送模塊,用于將所述第一數(shù)據(jù)包發(fā)送給所述請求方。
[0062] 結合第二方面,在第一種可能的實現(xiàn)方式中,所述接收模塊,還用于接收請求方發(fā) 送的興趣包,所述興趣包包含數(shù)據(jù)內容前綴信息;
[0063] 所述緩存處理裝置,還包括
[0064] 查詢模塊,用于根據(jù)所述數(shù)據(jù)內容前綴信息查詢所述緩存區(qū)是否已存儲與所述數(shù) 據(jù)內容前綴信息對應的數(shù)據(jù)內容; W65] 所述發(fā)送模塊,還用于若已存儲與所述數(shù)據(jù)內容前綴信息對應的數(shù)據(jù)內容,則將 包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間的第二數(shù)據(jù)包發(fā)送給請求方;
[0066] 更新模塊,用于若已存儲與所述數(shù)據(jù)內容前綴信息對應的數(shù)據(jù)內容,則更新本節(jié) 點的待定興趣表PIT ;
[0067] 所述發(fā)送模塊,還用于將所述興趣包轉發(fā)給下一跳節(jié)點。
[0068] 結合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述更新 模塊,具體用于查詢所述PIT中是否存在與所述數(shù)據(jù)內容前綴信息對應的條目,若是,則將 所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識添加至所述條目下; W例若否,則創(chuàng)建新的條目,將所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識添加至所 述新的條目下;
[0070] 所述發(fā)送模塊,具體用于查詢轉發(fā)信息庫FIB,將所述興趣包轉發(fā)給下一跳節(jié)點。
[0071] 結合第二方面及第二方面的第一種可能的實現(xiàn)方式和第二種可能的實現(xiàn)方式,在 第=種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)包還包括:下一跳節(jié)點的逗留時間;
[0072] 所述比較模塊,具體用于對所述本節(jié)點的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù) 據(jù)內容對應的下一跳節(jié)點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所 述數(shù)據(jù)內容緩存至緩存區(qū);
[0073] 逗留時間覆蓋模塊,用于將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的下一 跳節(jié)點的逗留時間;
[0074] 所述發(fā)送模塊,具體用于根據(jù)PIT中所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標 識,將所述第一數(shù)據(jù)包發(fā)送給請求方;所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的 逗留時間。
[0075] 結合第二方面及第=種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述比較 模塊,還用于若所述本節(jié)點的逗留時間小于或等于所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的 下一跳節(jié)點的逗留時間,則判斷所述緩存區(qū)是否已滿,若否,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);
[0076] 所述逗留時間覆蓋模塊,還用于若所述緩存區(qū)已滿,將所述本節(jié)點的逗留時間覆 蓋所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間;
[0077] 所述發(fā)送模塊,具體用于將所述第一數(shù)據(jù)包轉發(fā)給請求方;
[0078] 所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的逗留時間。 陽079] 結合第二方面的第一種可能的實現(xiàn)方式及第二種可能的實現(xiàn)方式,在第五種可能 的實現(xiàn)方式中,所述興趣包還包括:上一跳節(jié)點的逗留時間;
[0080] 所述更新模塊,具體用于查詢所述PIT中是否存在與所述數(shù)據(jù)內容前綴信息對應 的條目,若是,則將所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,W及所述數(shù)據(jù)內容前綴信 息對應的所述上一跳節(jié)點的逗留時間添加至所述條目下;
[00川若否,則創(chuàng)建新的條目,將所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標識,化及所述 數(shù)據(jù)內容前綴信息對應的所述上一跳節(jié)點的逗留時間添加至所述新的條目下;
[0082] 所述逗留時間覆蓋模塊,還用于將所述本節(jié)點的逗留時間覆蓋所述興趣包中的上 一跳節(jié)點的逗留時間;
[0083] 所述發(fā)送模塊,還用于查詢轉發(fā)信息庫FIB,將所述興趣包發(fā)給下一跳節(jié)點。
[0084] 結合第二方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,所述第一 數(shù)據(jù)包還包括:下一跳節(jié)點的逗留時間;
[00化]所述比較模塊,具體用于對所述PIT中所述數(shù)據(jù)內容前綴對應的所述上一跳節(jié)點 的逗留時間、所述本節(jié)點的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下一跳節(jié) 點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至緩存 區(qū);
[0086] 所述逗留時間覆蓋模塊,用于將所述本節(jié)點的逗留時間覆蓋所述第一數(shù)據(jù)包中的 下一跳節(jié)點的逗留時間;
[0087] 所述發(fā)送模塊,具體用于根據(jù)PIT中所述數(shù)據(jù)內容前綴信息對應的發(fā)送接口標 識,將所述第一數(shù)據(jù)包發(fā)送給請求方;所述第一數(shù)據(jù)包包含所述數(shù)據(jù)內容和所述本節(jié)點的 逗留時間。
[0088] 結合第二方面W及第二方面的第六種可能的實現(xiàn)方式,在第屯種可能的實現(xiàn)方式 中,所述比較模塊,還用于若所述本節(jié)點的逗留時間小于或等于所述PIT中所述數(shù)據(jù)內容 前綴對應的所述上一跳節(jié)點的逗留時間W及所述第一數(shù)據(jù)包中所述數(shù)據(jù)內容對應的下一 跳節(jié)點的逗留時間,判斷所述緩存區(qū)是否已滿,若否,則將所述數(shù)據(jù)內容緩存至緩存區(qū);
[0089] 所述逗留時間覆蓋模塊,用于若所述緩存區(qū)已滿,將所述本節(jié)點的逗留時間覆蓋 所述第一數(shù)據(jù)包中的下一跳節(jié)點的逗留時間;
[0090] 所述發(fā)送模塊,具體用于將所述第一數(shù)據(jù)包轉發(fā)給請求方。
[0091] 結合第二方面的第五種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述比較 模塊,具體用于對所述PIT中所述數(shù)據(jù)內容前綴對應的所述上一跳節(jié)點的逗留時間、所述 本節(jié)點的逗留時間進行比較,若所述本節(jié)點的逗留時間為最長,則將所述數(shù)據(jù)內容緩存至 緩存區(qū);