一種數(shù)據(jù)結(jié)構(gòu)的管理方法和裝置的制造方法
【專利摘要】本發(fā)明提出了一種數(shù)據(jù)結(jié)構(gòu)的管理方法和裝置,該管理方法包括:獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù);根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度;比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。本發(fā)明通過獲取鏈表中m個鏈表項(xiàng)的信息,并根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度,以及比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng),本發(fā)明根據(jù)活躍度進(jìn)行鏈表項(xiàng)的刪除操作,既考慮了時間因素,又考慮了數(shù)據(jù)傳輸?shù)囊蛩兀苊鈩h除由于網(wǎng)絡(luò)堵塞等原因造成的數(shù)據(jù)長時間沒有到達(dá)的連接或有效連接。
【專利說明】
一種數(shù)據(jù)結(jié)構(gòu)的管理方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及通信領(lǐng)域,具體來說,涉及一種數(shù)據(jù)結(jié)構(gòu)的管理方法和裝置。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)的飛速發(fā)展,網(wǎng)絡(luò)環(huán)境越來越復(fù)雜,在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)越難保證其原 始順序,同時,服務(wù)器已連接的數(shù)據(jù)結(jié)構(gòu)上通常采用順序表結(jié)構(gòu),針對順序表的插入、刪除 等操作時間復(fù)雜度為〇(n),其中,η為線性表的長度,但是,并發(fā)服務(wù)器采用順序表結(jié)構(gòu)存儲 已連接客戶端時,該順序表結(jié)構(gòu)的效率不夠高效。
[0003] 同時,淘汰策略通常采用LRU(Least Recently Used近期最少使用)算法,以斷開 最長時間沒有數(shù)據(jù)傳輸?shù)倪B接,但是,該淘汰算法有可能刪除(淘汰)由于網(wǎng)絡(luò)堵塞等原因 造成的數(shù)據(jù)長時間沒有到達(dá)的連接,另外該淘汰算法沒有考慮數(shù)據(jù)傳輸數(shù)量對傳輸?shù)挠?響,同時在DDos(Distributed Denial of Service分布式拒絕服務(wù))攻擊的時候,該算法也 容易把活躍的有效的連接刪除。
[0004] 針對相關(guān)技術(shù)中的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005] 針對相關(guān)技術(shù)中的問題,本發(fā)明提出一種數(shù)據(jù)結(jié)構(gòu)的管理方法和裝置。
[0006] 本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0007] 根據(jù)本發(fā)明的一個方面,提供了 一種數(shù)據(jù)結(jié)構(gòu)的管理方法。
[0008] 該管理方法包括:
[0009] 獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù);
[0010] 根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度;
[0011] 比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。
[0012] 根據(jù)本發(fā)明的一個實(shí)施例,鏈表項(xiàng)的信息包括:
[0013 ]創(chuàng)建時間T〇、活躍時間Ti、當(dāng)前時間T2、接收字節(jié)數(shù)沁、發(fā)送字節(jié)數(shù)N2。
[0014] 根據(jù)本發(fā)明的一個實(shí)施例,活躍時間為客戶端與服務(wù)器最后一次的通信時間。
[0015] 根據(jù)本發(fā)明的一個實(shí)施例,進(jìn)一步包括:
[0016] 根據(jù)m個鏈表項(xiàng)的信息,獲得m個鏈表項(xiàng)的傳輸速率;
[0017]比較m個鏈表項(xiàng)的傳輸速率,獲取最小傳輸速率Vmin。
[0018]根據(jù)本發(fā)明的一個實(shí)施例,進(jìn)一步包括:
[0020]其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率。
[0021 ]根據(jù)本發(fā)明的一個實(shí)施例,在獲取鏈表中m個鏈表項(xiàng)的信息之前包括:
[0022] 步驟S1,確定鏈表中鏈表項(xiàng)是否達(dá)到最大連接個數(shù)η;
[0023] 步驟S2,在鏈表項(xiàng)達(dá)到最大連接個數(shù)η的情況下,獲取鏈表中m個鏈表項(xiàng)的信息;
[0024]步驟S3,在鏈表項(xiàng)未達(dá)到最大連接個數(shù)η的情況下,將新的鏈接項(xiàng)添加至鏈表中。 [0025]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)結(jié)構(gòu)的管理裝置。
[0026] 該管理裝置包括:
[0027]第一獲取模塊,用于獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù);
[0028]第二獲取模塊,用于根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度;
[0029]比較刪除模塊,用于比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。
[0030] 根據(jù)本發(fā)明的一個實(shí)施例,鏈表項(xiàng)的信息包括:
[0031] 創(chuàng)建時間To、活躍時間!^、當(dāng)前時間T2、接收字節(jié)數(shù)Ni、發(fā)送字節(jié)數(shù)N2。
[0032] 根據(jù)本發(fā)明的一個實(shí)施例,活躍時間為服務(wù)器與客戶端最后一次的通信時間。
[0033] 根據(jù)本發(fā)明的一個實(shí)施例,活躍度獲取模塊包括:
[0035]其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率,Vmin為m個鏈表項(xiàng)的 最小傳輸速率。
[0036]本發(fā)明的有益技術(shù)效果在于:
[0037] 1)、本發(fā)明通過獲取鏈表中m個鏈表項(xiàng)的信息,并根據(jù)m個鏈表項(xiàng)的信息,獲取m個 鏈表項(xiàng)的活躍度,以及比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng),本發(fā)明根據(jù)活 躍度進(jìn)行鏈表項(xiàng)的刪除操作(即淘汰策略),既考慮了時間因素,又考慮了數(shù)據(jù)傳輸?shù)囊蛩兀?避免刪除由于網(wǎng)絡(luò)堵塞等原因造成的數(shù)據(jù)長時間沒有到達(dá)的連接或有效連接;
[0038] 2)、本發(fā)明通過采用鏈表數(shù)據(jù)結(jié)構(gòu),方便進(jìn)行鏈表項(xiàng)的刪除、插入等操作。
【附圖說明】
[0039] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施 例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。
[0040] 圖1是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)結(jié)構(gòu)的管理方法的流程圖;
[0041 ]圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)結(jié)構(gòu)的管理方法的流程圖;
[0042]圖3是根據(jù)本發(fā)明實(shí)施例的一種數(shù)據(jù)結(jié)構(gòu)的管理裝置的框圖。
【具體實(shí)施方式】
[0043]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的 范圍。
[0044] 根據(jù)本發(fā)明的實(shí)施例,提供了 一種數(shù)據(jù)結(jié)構(gòu)的管理方法。
[0045] 如圖1所示,根據(jù)本發(fā)明實(shí)施例的管理方法包括:
[0046]步驟S101,獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù);
[0047]步驟S103,根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度;
[0048] 步驟S105,比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。
[0049] 通過本發(fā)明的上述方案,通過獲取鏈表中m個鏈表項(xiàng)的信息,并根據(jù)m個鏈表項(xiàng)的 信息,獲取m個鏈表項(xiàng)的活躍度,以及比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng), 本發(fā)明根據(jù)活躍度進(jìn)行鏈表項(xiàng)的刪除操作(即淘汰策略),既考慮了時間因素,又考慮了數(shù) 據(jù)傳輸?shù)囊蛩兀苊鈩h除由于網(wǎng)絡(luò)堵塞等原因造成的數(shù)據(jù)長時間沒有到達(dá)的連接或有效連 接。
[0050] 根據(jù)本發(fā)明的一個實(shí)施例,鏈表項(xiàng)的信息包括:
[0051 ]倉Ij建時間To、活躍時間Ti、當(dāng)前時間T2、接收字節(jié)數(shù)Ni、發(fā)送字節(jié)數(shù)N2。
[0052]根據(jù)本發(fā)明的一個實(shí)施例,活躍時間為客戶端與服務(wù)器最后一次的通信時間。 [0053]根據(jù)本發(fā)明的一個實(shí)施例,進(jìn)一步包括:
[0054]根據(jù)m個鏈表項(xiàng)的信息,獲得m個鏈表項(xiàng)的傳輸速率;
[0055] 比較m個鏈表項(xiàng)的傳輸速率,獲取最小傳輸速率Vmin。
[0056] 根據(jù)本發(fā)明的一個實(shí)施例,進(jìn)一步包括:
[0058]其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率。
[0059]根據(jù)本發(fā)明的一個實(shí)施例,在獲取鏈表中m個鏈表項(xiàng)的信息之前包括:
[0000]步驟S1,確定鏈表中鏈表項(xiàng)是否達(dá)到最大連接個數(shù)η;
[0061 ]步驟S2,在鏈表項(xiàng)達(dá)到最大連接個數(shù)η的情況下,獲取鏈表中m個鏈表項(xiàng)的信息;
[0062] 步驟S3,在鏈表項(xiàng)未達(dá)到最大連接個數(shù)η的情況下,將新的鏈接項(xiàng)添加至鏈表中。
[0063] 為了更好的理解本發(fā)明,下面以一個具體的實(shí)施例進(jìn)行描述。
[0064] 如圖2所示,該實(shí)施例的具體步驟如下:
[0065] (1)、初始化服務(wù)器的已連接的單鏈表,初始化后該鏈表長度為0,鏈表的最大長度 為服務(wù)器允許最大連接個數(shù),該個數(shù)可以根據(jù)實(shí)際需求進(jìn)行設(shè)定,如:鏈表中具有1〇〇個鏈 表項(xiàng),本發(fā)明對此不作限定;
[0066] (2)、監(jiān)聽端口,如:在服務(wù)器和客戶端連接的同時,監(jiān)聽傳輸層的端口;
[0067] (3)、查看該鏈表長度是否達(dá)到最大長度,即鏈表中鏈表項(xiàng)是否達(dá)到最大個數(shù),如 果沒有,則轉(zhuǎn)到(6),否則轉(zhuǎn)到(4);
[0068] 、遍歷鏈表,根據(jù)連接鏈表項(xiàng)中信息,如創(chuàng)建時間、活躍時間、當(dāng)前時間、接收字節(jié) 數(shù)、發(fā)送字節(jié)數(shù),根據(jù)上述信息計算已連接的鏈表項(xiàng)的活躍度,得到已連接鏈表項(xiàng)中活躍度 最小的鏈表項(xiàng),如:鏈表的最大連接個數(shù)為100個,獲取100個鏈表項(xiàng)各自的信息,根據(jù)上述 信息,計算1 〇〇個鏈表項(xiàng)的活躍度,隨后比較1 〇〇個鏈表項(xiàng)的大小,得到活躍度最小的鏈表 項(xiàng)。
[0069] 此外,任意一個已經(jīng)鏈表項(xiàng)"活躍度"的計算過程如下:
[0070] 數(shù)據(jù)傳輸數(shù)量=接收字節(jié)數(shù)+發(fā)送字節(jié)數(shù);
[0071 ]傳輸速率=數(shù)據(jù)傳輸數(shù)量/(當(dāng)前時間-創(chuàng)建時間);
[0072]活躍度=(當(dāng)前時間-創(chuàng)建時間)/(當(dāng)前時間-活躍時間)+傳輸速率/最小傳輸速 率,其中等號右邊的兩項(xiàng)可以進(jìn)彳丁加權(quán);
[0073] 其中,每個鏈表項(xiàng)至少維護(hù)下面的信息:創(chuàng)建時間、活躍時間、當(dāng)前時間、接收字節(jié) 數(shù)、發(fā)送字節(jié)數(shù),其中,活躍時間為客戶端與服務(wù)器最后一次的通信時間,根據(jù)上述信息,每 個鏈表項(xiàng)就可以計算出數(shù)據(jù)傳輸量及傳輸速率,同時,最小傳輸速率是已連接的鏈表項(xiàng)中 的最小傳輸速率。
[0074] (4)、刪除活躍度最小的鏈表項(xiàng),即關(guān)閉該鏈表項(xiàng)對應(yīng)的連接,對應(yīng)地,釋放內(nèi)存資 源;
[0075] (5)、在需創(chuàng)建鏈表項(xiàng)的情況下,將新的鏈表項(xiàng)加入至該鏈表中,在鏈表項(xiàng)中記錄 連接創(chuàng)建時間,同時,鏈表長度加1;
[0076] (6)、在服務(wù)器和客戶端通信的過程中,將數(shù)據(jù)傳輸量、活躍時間等信息保存在鏈 表項(xiàng)中。
[0077]根據(jù)本發(fā)明的實(shí)施例,還提供了一種數(shù)據(jù)結(jié)構(gòu)的管理裝置。
[0078]如圖3所示,根據(jù)本發(fā)明實(shí)施例的管理裝置包括:
[0079]第一獲取模塊31,用于獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù);
[0080]第二獲取模塊32,用于根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度;
[0081]比較刪除模塊33,用于比較m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。
[0082]根據(jù)本發(fā)明的一個實(shí)施例,鏈表項(xiàng)的信息包括:
[0083]倉ij建時間To、活躍時間h、當(dāng)前時間T2、接收字節(jié)數(shù)見、發(fā)送字節(jié)數(shù)N2。
[0084] 根據(jù)本發(fā)明的一個實(shí)施例,活躍時間為服務(wù)器與客戶端最后一次的通信時間。
[0085] 根據(jù)本發(fā)明的一個實(shí)施例,活躍度獲取模塊(未示出)包括:
[0087] 其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率,Vmin為m個鏈表項(xiàng)的 最小傳輸速率。
[0088] 綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過獲取鏈表中m個鏈表項(xiàng)的信息,并 根據(jù)m個鏈表項(xiàng)的信息,獲取m個鏈表項(xiàng)的活躍度,以及比較m個鏈表項(xiàng)的活躍度,刪除活躍 度最小的鏈表項(xiàng),本發(fā)明根據(jù)活躍度進(jìn)行鏈表項(xiàng)的刪除操作,即淘汰策略即考慮了時間因 素、也考慮了數(shù)據(jù)傳輸?shù)囊蛩兀苊饬藙h除由于網(wǎng)絡(luò)堵塞等原因造成的數(shù)據(jù)長時間沒有到 達(dá)的連接或有效連接的情況。
[0089] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)結(jié)構(gòu)的管理方法,其特征在于,包括: 獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù); 根據(jù)所述m個鏈表項(xiàng)的信息,獲取所述m個鏈表項(xiàng)的活躍度; 比較所述m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。2. 根據(jù)權(quán)利要求1所述的管理方法,其特征在于,所述鏈表項(xiàng)的信息包括: 倉|J建時間To、活躍時間T1、當(dāng)前時間T2、接收字節(jié)數(shù)N1、發(fā)送字節(jié)數(shù)N 2。3. 根據(jù)權(quán)利要求2所述的管理方法,其特征在于,所述活躍時間為客戶端與服務(wù)器最后 一次的通信時間。4. 根據(jù)權(quán)利要求2所述的管理方法,其特征在于,進(jìn)一步包括: 根據(jù)所述m個鏈表項(xiàng)的信息,獲得m個鏈表項(xiàng)的傳輸速率; 比較所述m個鏈表項(xiàng)的傳輸速率,獲取最小傳輸速率Vmin。5. 根據(jù)權(quán)利要求4所述的管理方法,其特征在于,進(jìn)一步包括:其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率。6. 根據(jù)權(quán)利要求1所述的管理方法,其特征在于,在獲取鏈表中m個鏈表項(xiàng)的信息之前 包括: 步驟S1,確定鏈表中鏈表項(xiàng)是否達(dá)到最大連接個數(shù)η; 步驟S2,在所述鏈表項(xiàng)達(dá)到最大連接個數(shù)η的情況下,獲取鏈表中m個鏈表項(xiàng)的信息; 步驟S3,在所述鏈表項(xiàng)未達(dá)到最大連接個數(shù)η的情況下,將新的鏈接項(xiàng)添加至所述鏈表 中。7. -種數(shù)據(jù)結(jié)構(gòu)的管理裝置,其特征在于,包括: 第一獲取模塊,用于獲取鏈表中m個鏈表項(xiàng)的信息,其中,m為正整數(shù); 第二獲取模塊,用于根據(jù)所述m個鏈表項(xiàng)的信息,獲取所述m個鏈表項(xiàng)的活躍度; 比較刪除模塊,用于比較所述m個鏈表項(xiàng)的活躍度,刪除活躍度最小的鏈表項(xiàng)。8. 根據(jù)權(quán)利要求7所述的管理裝置,其特征在于,所述鏈表項(xiàng)的信息包括: 倉|J建時間To、活躍時間T1、當(dāng)前時間T2、接收字節(jié)數(shù)N1、發(fā)送字節(jié)數(shù)N 2。9. 根據(jù)權(quán)利要求8所述的管理裝置,其特征在于,所述活躍時間為服務(wù)器與客戶端最后 一次的通信時間。10. 根據(jù)權(quán)利要求9所述的管理裝置,活躍度獲取模塊包括:其中,Am為當(dāng)前鏈表項(xiàng)的活躍度,Vm為當(dāng)前鏈表項(xiàng)的傳輸速率,Vmin為所述m個鏈表項(xiàng)的 最小傳輸速率。
【文檔編號】H04L12/883GK106027419SQ201610341434
【公開日】2016年10月12日
【申請日】2016年5月20日
【發(fā)明人】張晨星
【申請人】曙光云計算技術(shù)有限公司