文數(shù)目與該NAT會(huì)話在該統(tǒng)計(jì)周期內(nèi)的存活時(shí) 長(zhǎng)(即從生成該NAT會(huì)話到該統(tǒng)計(jì)周期結(jié)束這一段時(shí)間的時(shí)長(zhǎng)),得到該NAT會(huì)話在該統(tǒng)計(jì) 周期內(nèi)的活躍度。
[0028] 本步驟中,當(dāng)前統(tǒng)計(jì)周期內(nèi),當(dāng)用戶占用第一端口段中端口的第一 NAT會(huì)話老化 完成時(shí),NAT設(shè)備可以判斷用戶當(dāng)前占用第一端口段中端口的第二NAT會(huì)話的數(shù)目是否小 于設(shè)定數(shù)目。
[0029] 步驟S202,當(dāng)小于所述設(shè)定數(shù)目時(shí),將每個(gè)所述第二NAT會(huì)話占用的端口分別更 新為第二端口段中的端口,并釋放所述第一端口段,其中,所述第二端口段的端口數(shù)目小于 所述第一端口段的端口數(shù)目。
[0030] 本步驟中,如果第二NAT會(huì)話的數(shù)目小于設(shè)定數(shù)目,則NAT設(shè)備可以將每個(gè)第二 NAT會(huì)話占用的端口分別更新為第二端口段中的端口,并釋放第一端口段,其中,第二端口 段的端口數(shù)目小于第一端口段的端口數(shù)目。
[0031] 當(dāng)前統(tǒng)計(jì)周期的上一統(tǒng)計(jì)周期結(jié)束時(shí)(也就是當(dāng)前統(tǒng)計(jì)周期開始時(shí)),NAT設(shè)備可 以判斷用戶當(dāng)前占用第一端口段中端口的第三NAT會(huì)話在上一統(tǒng)計(jì)周期內(nèi)的活躍度是否 都大于門限值,如果都大于,則在當(dāng)前統(tǒng)計(jì)周期內(nèi)第一端口段釋放之后,用戶有業(yè)務(wù)的報(bào)文 到達(dá)而需要為用戶分配端口段(第二端口段中端口均被占用)時(shí),NAT設(shè)備可以分配第三 端口段,還可以為該業(yè)務(wù)分配占用第三端口段中端口的第四NAT會(huì)話;否則,在用戶有業(yè)務(wù) 的報(bào)文到達(dá)而需要為用戶分配端口段(第二端口段中端口均被占用)時(shí),NAT設(shè)備可以分 配第四端口段,還可以為該業(yè)務(wù)分配占用第四端口段中端口的第五NAT會(huì)話,其中,第四端 口段的端口數(shù)目可以小于第三端口段的端口數(shù)目,第五NAT會(huì)話的老化時(shí)長(zhǎng)可以小于第四 NAT會(huì)話的老化時(shí)長(zhǎng)。對(duì)于第二NAT會(huì)話的數(shù)目不小于設(shè)定數(shù)目的情況,如果上一統(tǒng)計(jì)周期 結(jié)束時(shí)NAT設(shè)備判定用戶當(dāng)前占用第一端口段中端口的第三NAT會(huì)話在上一統(tǒng)計(jì)周期內(nèi)的 活躍度都大于門限值,則當(dāng)前統(tǒng)計(jì)周期內(nèi)用戶有業(yè)務(wù)的報(bào)文到達(dá)而需要為用戶分配端口段 (第一端口段中端口均被占用)時(shí),NAT設(shè)備可以分配第三端口段并可以為該業(yè)務(wù)分配占用 第三端口段中端口的第四NAT會(huì)話;如果判定不都大于門限值,則當(dāng)前統(tǒng)計(jì)周期內(nèi)用戶有 業(yè)務(wù)的報(bào)文到達(dá)而需要為用戶分配端口段(第一端口段中端口均被占用)時(shí),NAT設(shè)備可 以分配第四端口段并可以為該業(yè)務(wù)分配占用第四端口段中端口的第五NAT會(huì)話。
[0032] 上一統(tǒng)計(jì)周期結(jié)束時(shí),NAT設(shè)備還可以計(jì)算第三NAT會(huì)話中在該統(tǒng)計(jì)周期內(nèi)的活 躍度大于門限值的活躍NAT會(huì)話的數(shù)目與第三NAT會(huì)話的數(shù)目的比值,當(dāng)該比值為0 (即第 三NAT會(huì)話在上一統(tǒng)計(jì)周期內(nèi)的活躍度都大于門限值)時(shí),可以延長(zhǎng)每個(gè)第三NAT會(huì)話的 老化時(shí)長(zhǎng);且/或,當(dāng)該比值大于O且小于設(shè)定值時(shí),可以縮短上一統(tǒng)計(jì)周期內(nèi)第三NAT會(huì) 話中活躍度最小的M個(gè)NAT會(huì)話的老化時(shí)長(zhǎng),并可以延長(zhǎng)上一統(tǒng)計(jì)周期內(nèi)第三NAT會(huì)話中 活躍度最大的N個(gè)NAT會(huì)話的老化時(shí)長(zhǎng);且/或,當(dāng)該比值為1 (即第三NAT會(huì)話在上一統(tǒng) 計(jì)周期內(nèi)的活躍度都不大于門限值)時(shí),可以縮短每個(gè)第三NAT會(huì)話的老化時(shí)長(zhǎng)。
[0033] 應(yīng)用上述實(shí)施例,通過(guò)在用戶的占用某端口段中端口的NAT會(huì)話數(shù)目小于設(shè)定數(shù) 目時(shí),將用戶NAT會(huì)話占用的端口更新為端口數(shù)目較小的另一端口段中的端口,減少了用 戶占用的端口段中閑置端口的數(shù)目,從而提高了端口資源的利用率。
[0034] 圖3是本發(fā)明資源處理方法的另一個(gè)實(shí)施例流程圖,參照?qǐng)D2,本實(shí)施例中的資源 處理方法用于NAT設(shè)備,包括如下步驟:
[0035] 步驟S301,當(dāng)前統(tǒng)計(jì)周期開始時(shí),計(jì)算當(dāng)前占用第一端口段中端口的每個(gè)NAT會(huì) 話在上一統(tǒng)計(jì)周期內(nèi)的活躍度,并進(jìn)行NAT會(huì)話老化時(shí)長(zhǎng)的調(diào)整。
[0036] 本實(shí)施例中,NAT設(shè)備可以將公有網(wǎng)絡(luò)的端口資源分成兩類端口段,一類端口段的 端口數(shù)目為U(如200個(gè)),另一類端口段的端口數(shù)目為V(V〈U,如20個(gè))。兩類端口段的端 口段數(shù)目比例由管理員決定。
[0037] NAT設(shè)備可以根據(jù)NAT會(huì)話的報(bào)文類型來(lái)設(shè)定NAT會(huì)話的老化時(shí)長(zhǎng)的初始值、每次 縮短的幅度、每次延長(zhǎng)的幅度和允許調(diào)整到的最大值。表1中給出了示例。
[0038] 表 1
[0040] 當(dāng)用戶第一次有報(bào)文到達(dá)NAT設(shè)備時(shí),NAT設(shè)備可以為用戶分配端口數(shù)目為U的 立而口塊。
[0041] 本步驟中,NAT設(shè)備可以以T為統(tǒng)計(jì)周期進(jìn)行NAT會(huì)話活躍度的統(tǒng)計(jì)。
[0042] 對(duì)于每個(gè)統(tǒng)計(jì)周期,該統(tǒng)計(jì)周期開始時(shí),對(duì)于用戶當(dāng)前占用某端口塊中端口的每 個(gè)NAT會(huì)話,NAT設(shè)備可以將該NAT會(huì)話的匹配計(jì)數(shù)初始化為0,后續(xù)如果用戶有報(bào)文到達(dá), 則可以判斷是否根據(jù)該NAT會(huì)話在NAT表中的表項(xiàng)轉(zhuǎn)發(fā)該報(bào)文,如果是,則視為該NAT會(huì)話 匹配一次,將該NAT會(huì)話的匹配計(jì)數(shù)增加1 ;對(duì)于該統(tǒng)計(jì)周期開始之后生成的NAT會(huì)話,則 將該NAT會(huì)話的匹配計(jì)數(shù)設(shè)置為1,后續(xù)如果用戶有報(bào)文到達(dá),則可以判斷是否根據(jù)該NAT 會(huì)話在NAT表中的表項(xiàng)轉(zhuǎn)發(fā)該報(bào)文,如果是,則視為該NAT會(huì)話匹配一次,將該NAT會(huì)話的 匹配計(jì)數(shù)增加1。該統(tǒng)計(jì)周期結(jié)束時(shí),對(duì)于用戶當(dāng)前的每個(gè)NAT會(huì)話,NAT設(shè)備可以計(jì)算該 NAT會(huì)話的匹配計(jì)數(shù)與該NAT會(huì)話在該統(tǒng)計(jì)周期內(nèi)的存活時(shí)長(zhǎng)(如果該NAT會(huì)話在該統(tǒng)計(jì) 周期開始時(shí)已經(jīng)生成,則存活時(shí)長(zhǎng)為T ;如果該NAT會(huì)話在該統(tǒng)計(jì)周期開始之后生成,則存 活時(shí)長(zhǎng)為從生成該NAT會(huì)話到該統(tǒng)計(jì)周期結(jié)束這段時(shí)間的時(shí)長(zhǎng))之比,得到該NAT會(huì)話在 該統(tǒng)計(jì)周期內(nèi)的活躍度。
[0043] 以表2為例,NAT會(huì)話#1在92s時(shí)建立,NAT會(huì)話#2在103s時(shí)建立,則NAT會(huì)話 #1在統(tǒng)計(jì)周期[100s,IlOs)內(nèi)的活躍度為NAT會(huì)話#2在IlOs時(shí)的匹配計(jì)數(shù)八110-100) s,NAT會(huì)話#2在統(tǒng)計(jì)周期[100s,110s)內(nèi)的活躍度為NAT會(huì)話#2在IlOs時(shí)的匹配計(jì)數(shù)/ (110-103)S 0
[0044] 表 2
[0047] 當(dāng)前統(tǒng)計(jì)周期開始時(shí),NAT設(shè)備可以判斷用戶當(dāng)前占用第一端口段中端口的第三 NAT會(huì)話在上一統(tǒng)計(jì)周期內(nèi)的活躍度是否都大于門限值,如果是,則可以將用戶標(biāo)記為"非 ?;钴S",并可以將每個(gè)第三NAT會(huì)話的老化時(shí)長(zhǎng)分別調(diào)整為該第三NAT會(huì)話的報(bào)文類型所 對(duì)應(yīng)的允許調(diào)整到的最大值;如果第三NAT會(huì)話中在上一統(tǒng)計(jì)周期內(nèi)活躍度大于門限值的 活躍NAT會(huì)話的數(shù)目與第三NAT會(huì)話的數(shù)目的比值大于0且小于設(shè)定值,則可以將用戶標(biāo) 記為"部分活躍",并可以將上一統(tǒng)計(jì)周期內(nèi)活躍度最小的M個(gè)第三NAT會(huì)話的老化時(shí)間按 照這M個(gè)NAT會(huì)話各自的報(bào)文類型所對(duì)應(yīng)的每次縮短的幅度縮短;如果第三NAT會(huì)話在上 一統(tǒng)計(jì)周期內(nèi)的活躍度都不大于門限值,則可以將用戶標(biāo)記為"不活躍",并可以將每個(gè)第 三NAT會(huì)話按照該第三NAT會(huì)話的報(bào)文類型所對(duì)應(yīng)的每次縮短的幅度縮短。
[0048] 步驟S302,用戶占用第一端口段中端口的第一 NAT會(huì)話老化完成時(shí),判斷用戶當(dāng) 前占用第一端口段中端口的第二NAT會(huì)話的數(shù)目是否小于設(shè)定數(shù)目,如果是,則執(zhí)行步驟 S303 ;否則,執(zhí)行步驟S305。
[0049] 本步驟中,第一 NAT會(huì)話老化完成具體可以發(fā)生在當(dāng)前統(tǒng)計(jì)周期內(nèi)。
[0050] 步驟S303,將每個(gè)第二NAT會(huì)話占用的端口分別更新為第二端口段中的端口,并 釋放第一端口段。
[0051]