亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多核下子連接并發(fā)識別與處理的方法

文檔序號:7929282閱讀:164來源:國知局

專利名稱::多核下子連接并發(fā)識別與處理的方法
技術(shù)領(lǐng)域
:本發(fā)明涉及網(wǎng)絡(luò)通訊中應(yīng)用協(xié)議處理和識別技術(shù),特別涉及一種多核下子連接并發(fā)識別與處理的方法。
背景技術(shù)
:多連接協(xié)議是指在協(xié)議完成過程中,除了一個(gè)主的通信通道(父連接)夕卜,還會動(dòng)態(tài)打開一些通道(子連接)進(jìn)行通信,防火墻對這些協(xié)議需要特別處理才能保證安全。多連接協(xié)議也可分為強(qiáng)制子連接和非強(qiáng)制子連接,強(qiáng)制子連接是指子連接的建立是必須的,不建立子連接通信將無法正常進(jìn)行,如FTP;非強(qiáng)制子連接是指子連接的建立不是必須的,主連接先嘗試用動(dòng)態(tài)端口打開子連接,如果子連接打不開,則數(shù)據(jù)依舊在主連接中傳輸,這樣不影響總體協(xié)議通信的完成,如匪S、MSN傳遞文件等。對防火墻來說,處理的重點(diǎn)前者,因?yàn)楹笳咴诜阑饓ι峡梢圆挥米魈厥馓幚怼R韵氯舨惶厥庹f明,都是指前者,即強(qiáng)制子連接。子連接的特殊之處就在于與之連接的端口通常是動(dòng)態(tài)的,具體值是在協(xié)議內(nèi)容中協(xié)商確定,而一般防火墻的策略中只允許有限的端口通過,端口全部開放是很危險(xiǎn)的,所以早期的包過濾防火墻,對于FTP協(xié)議的支持只能支持主動(dòng)模式,也就是服務(wù)器端數(shù)據(jù)端口固定為20時(shí)的情況,被動(dòng)模式不支持或只能通過打開全部端口來支持。現(xiàn)在很多子連接的識別和處理方法是在單核處理器下運(yùn)行,沒有并發(fā)安全問題,如果將現(xiàn)有識別和處理方法放到多核處理器下運(yùn)行會出現(xiàn)子連接并發(fā)處理互斥沖突的問題。例如,CPU1正在創(chuàng)建子連接并將子連接信息記錄插入到子連接鏈表中,而CPU2上被事件(如接收到TCPfin報(bào)文、用戶手工刪除連接)觸發(fā)刪除父連接從而刪除了子連接鏈表,這樣就可能會導(dǎo)致系統(tǒng)崩潰。
發(fā)明內(nèi)容鑒于上述的分析,本發(fā)明目的在于提供一種多核下子連接并發(fā)識別與處理的方法,用以解決現(xiàn)有技術(shù)中存在的子連接并發(fā)處理互斥沖突的問題。本發(fā)明的目的主要是通過以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明提供了一種多核下子連接并發(fā)識別與處理的方法,包括步驟A:預(yù)設(shè)定子連接狀態(tài)機(jī)策略,父連接根據(jù)所述子連接狀態(tài)機(jī)策略對子連接信息節(jié)點(diǎn)進(jìn)行相應(yīng)的狀態(tài)管理;步驟B:建立父子連接樹,并在父連接信息節(jié)點(diǎn)中保存其應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在其應(yīng)用協(xié)議信息節(jié)點(diǎn)中保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針;步驟C:對整個(gè)父子連接樹設(shè)置一個(gè)關(guān)系樹鎖,所述關(guān)系樹鎖的創(chuàng)建和回收都在根連接創(chuàng)建和回收時(shí)進(jìn)行;步驟D:對所述關(guān)系樹鎖設(shè)置引用計(jì)數(shù)器,并只有當(dāng)引用計(jì)時(shí)器為O時(shí)才釋放所述關(guān)系樹鎖。進(jìn)一步地,所述子連接狀態(tài)機(jī)策略包括多個(gè)子連接狀態(tài)及多個(gè)系統(tǒng)鏈表;其中,所述子連接狀態(tài)包括初始狀態(tài)、未處理狀態(tài)、匹配狀態(tài)、已處理狀態(tài)、未連接狀態(tài)和刪除狀態(tài),所述系統(tǒng)鏈表包括未處理鏈表、已處理鏈表和子連接鏈表。進(jìn)一步地,所述步驟A具體包括步驟A1:父連接通過解析報(bào)文,對預(yù)計(jì)到達(dá)的子連接創(chuàng)建子連接信息節(jié)點(diǎn);步驟A2:將該子連接信息節(jié)點(diǎn)添加到未處理鏈表中,等待子連接到達(dá)或超時(shí),如果子連接按時(shí)到達(dá)則執(zhí)行步驟A3,如果超時(shí)則執(zhí)行步驟A4;步驟A3:子連接報(bào)文到達(dá)并匹配成功,標(biāo)記該子連接信息節(jié)點(diǎn)狀態(tài)為匹配狀態(tài);然后判斷是否需要后續(xù)處理,如果需要后續(xù)處理,則將該子連接信息節(jié)點(diǎn)添加到已處理鏈表中,并在協(xié)議處理完成后,執(zhí)行步驟A4;如果不需后續(xù)處理,則直接執(zhí)行步驟A4;步驟A4:將該子連接信息節(jié)點(diǎn)從子連接鏈表中取下,并標(biāo)記子連接信息節(jié)點(diǎn)為刪除狀態(tài)。進(jìn)一步地,所述步驟B具體包括在父連接信息節(jié)點(diǎn)中保存應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在應(yīng)用協(xié)議信息節(jié)點(diǎn)中使用一個(gè)鏈表保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針;其中,每一個(gè)子連接信息節(jié)點(diǎn)的parent指針都指向創(chuàng)建該子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn),child指針指向與該子連接信息節(jié)點(diǎn)匹配成功后創(chuàng)建的應(yīng)用協(xié)議信息節(jié)點(diǎn),并且該創(chuàng)建的應(yīng)用協(xié)議信息節(jié)點(diǎn)的parent指向創(chuàng)建其的子連接信息節(jié)點(diǎn)。進(jìn)一步地,所述步驟C具體包括當(dāng)根連接創(chuàng)建時(shí),關(guān)系樹鎖被創(chuàng)建并將其指針保存在根應(yīng)用協(xié)議信息節(jié)點(diǎn)中;當(dāng)父連接要?jiǎng)?chuàng)建子連接時(shí),父連接從其應(yīng)用協(xié)議信息節(jié)點(diǎn)中取出關(guān)系樹鎖指針保存在子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn)中;當(dāng)父子連接樹的所有成員都釋放之后回收關(guān)系樹鎖。進(jìn)一步地,所述步驟D具體包括對所述關(guān)系樹鎖設(shè)置引用計(jì)數(shù)器,當(dāng)創(chuàng)建子連接信息節(jié)點(diǎn)或創(chuàng)建子連接信息節(jié)點(diǎn)對應(yīng)的應(yīng)用協(xié)議信息節(jié)點(diǎn)時(shí),子連接信息節(jié)點(diǎn)從其父連接處獲得引用計(jì)數(shù)器并將引用計(jì)數(shù)加l,代表關(guān)系樹中又增加了一個(gè)成員;當(dāng)刪除連接時(shí),遍歷整個(gè)父子連接樹并刪除當(dāng)前連接的所有子連接,每一個(gè)對應(yīng)到關(guān)系樹的連接被刪除時(shí)引用計(jì)數(shù)器減l,判斷引用計(jì)數(shù)是否為O,如果為O,釋放關(guān)系樹鎖,否則不釋放關(guān)系樹鎖。進(jìn)一步地,所述引用計(jì)數(shù)器為原子變量,其其創(chuàng)建、初始化和回收都由根應(yīng)用協(xié)議信息節(jié)點(diǎn)執(zhí)行。進(jìn)一步地,所述關(guān)系樹鎖為自旋鎖。本發(fā)明有益效果如下本發(fā)明有效的提高了從控制連接中識別子連接并進(jìn)行后續(xù)處理的性能,有效的提高了系統(tǒng)的并發(fā)處理能力。本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。圖1為本發(fā)明實(shí)施例所述方法中,子連接信息狀態(tài)變遷過程的示意圖;圖2為本發(fā)明實(shí)施例所述方法中,子連接信息狀態(tài)變化處理流程圖;圖3為現(xiàn)有技術(shù)中,父子連接樹的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例所述方法中,父子連接關(guān)系管理示意圖。具體實(shí)施例方式本發(fā)明的核心思想為,采用子連接狀態(tài)機(jī)判斷并保證子連接信息的正確性,使用樹形結(jié)構(gòu)完整保護(hù)父子連接關(guān)系,使用引用計(jì)數(shù)器確保應(yīng)用協(xié)議信息結(jié)構(gòu)正確存活。下面結(jié)合附圖來具體描述本發(fā)明的優(yōu)先實(shí)施例,其中,附圖構(gòu)成本申請一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。由于一個(gè)子連接從創(chuàng)建到消亡需要經(jīng)歷多個(gè)狀態(tài),并且狀態(tài)的變遷順序遵循事先設(shè)計(jì)的邏輯,在單核處理器下由于處理是順序執(zhí)行的,所以同一時(shí)刻一個(gè)子連接的信息只可能被唯一的CPU訪問,不需要關(guān)心狀態(tài)的變化;但在多核處理器下,一個(gè)子連接信息能夠被多個(gè)CPU訪問,會導(dǎo)致狀態(tài)變化過程中會發(fā)生中斷或再次變化狀態(tài)的情況,為了解決這個(gè)問題本發(fā)明實(shí)施例使用子連接狀態(tài)機(jī)策略管理子連接的狀態(tài)并使用關(guān)系樹鎖保證在狀態(tài)變化過程中其他CPU不能中斷或再次改變狀態(tài)。如圖1所示,圖1為子連接信息狀態(tài)變遷過程的示意圖,子連接從創(chuàng)建到消亡通常需要經(jīng)歷的狀態(tài)包括EXPECT_STATUS_INIT(初始狀態(tài))、EXPECT_STATUS_UNRESOLVED(UNRESOLVED狀態(tài),即未處理狀態(tài))、EXPECT_STATUS_MATCH(match狀態(tài),即匹配狀態(tài))、EXPECT_STATUS_RESOLVED(RESOLVED狀態(tài),已處理狀態(tài))、EXPECT_STATUS_UNLINK(UNLINK狀態(tài),未連接狀態(tài))、EXPECT_STATUS_DELETED(DELETE狀態(tài),刪除狀態(tài)),通過以上狀態(tài)能夠標(biāo)記子連接處理過程中的不同階段,并且在處理的不同階段通過檢查狀態(tài)來分析互斥問題。設(shè)定系統(tǒng)的三個(gè)鏈表——UNRESOLVED鏈表(未處理鏈表)、RES0LVED鏈表(已處理鏈表)和子連接鏈表,其中,UNRESOLVED鏈表用于保存所有期待到達(dá)的子連接的信息節(jié)點(diǎn);RESOLVED鏈表用于保存所有已經(jīng)到達(dá)并成功建立的子連接的信息節(jié)點(diǎn);子連接鏈表父連接用來保存所有其子連接信息節(jié)點(diǎn)的鏈表,鏈表指針保存在父連接的應(yīng)用協(xié)議信息節(jié)點(diǎn)中。其中,各個(gè)狀態(tài)的說明如下表所示狀態(tài)說明EXPECT—STATUS—INIT初始狀態(tài),此子連接信息剛被創(chuàng)建或克隆還未添加到任何鏈表中6<table>tableseeoriginaldocumentpage7</column></row><table>如圖2所示,圖2為本發(fā)明實(shí)施例所述方法的子連接信息狀態(tài)變化處理流程圖,具體可以包括以下步驟步驟201:父連接對接收到的報(bào)文進(jìn)行解析,如解析到報(bào)文中有協(xié)商子連接的信息時(shí),說明可能會有子連接到達(dá),執(zhí)行步驟202;步驟202:創(chuàng)建子連接信息節(jié)點(diǎn),子連接信息節(jié)點(diǎn)進(jìn)入初始狀態(tài)(EXPECT_STATUS_INIT);步驟203:將該子連接信息節(jié)點(diǎn)添加到UNRESOLVED鏈表中等待子連接到達(dá)或超時(shí),即進(jìn)入U(xiǎn)NRESOLVED狀態(tài)(EXPECT_STATUS_UNRESOLVED);如果子連接按時(shí)到達(dá)則執(zhí)行步驟204,如果超時(shí)則執(zhí)行步驟206;步驟204:子連接報(bào)文到達(dá)并匹配成功,修改該子連接信息節(jié)點(diǎn)狀態(tài)為match狀態(tài)(EXPECT_STATUS_MATCH),確保該節(jié)點(diǎn)不會再次被匹配;如果需要后續(xù)處理則執(zhí)行步驟205,如果不需后續(xù)處理則執(zhí)行步驟206;步驟205:將該子連接信息節(jié)點(diǎn)添加到RESOLVED鏈表中,進(jìn)入RESOLVED狀態(tài)(EXPECT_STATUS_RESOLVED);當(dāng)協(xié)議處理完成后,執(zhí)行步驟206;步驟206:子連接脫鏈,并將該子連接信息節(jié)點(diǎn)從父連接的子連接鏈表中取下,進(jìn)入U(xiǎn)NLINK狀態(tài)(EXPECT_STATUS_UNLINK);步驟207:標(biāo)記該子連接信息節(jié)點(diǎn)為刪除狀態(tài)(EXPECT_STATUS_DELETED),并使用RCU(Read-CopyUpdate)回收。如圖3所示,圖3為現(xiàn)有父子連接樹的結(jié)構(gòu)示意圖,應(yīng)用協(xié)議在通訊過程中產(chǎn)生的會話關(guān)系實(shí)際上是一個(gè)樹形結(jié)構(gòu),所有的子連接都是由初始的應(yīng)用協(xié)議控制連接協(xié)商出來的,而在一些復(fù)雜應(yīng)用協(xié)議通訊時(shí)子連接可能還會協(xié)商新的子連接,這樣的父子連接樹形結(jié)構(gòu)可能有多層。在系統(tǒng)中,每個(gè)連接都有其對應(yīng)的連接信息節(jié)點(diǎn),并且由連接模塊管理,連接模塊負(fù)責(zé)連接的建立,使用,刪除,每個(gè)連接存儲了報(bào)文轉(zhuǎn)發(fā)所需的控制信息。當(dāng)報(bào)文到達(dá)時(shí),連接模塊能夠根據(jù)報(bào)文查找到對應(yīng)的連接信息節(jié)點(diǎn)。由此可見,父連接和子連接對連接模塊而言關(guān)系是平行的,系統(tǒng)無法根據(jù)父連接查找和管理子連接,也無法在處理子連接訪問其對應(yīng)的父連接。為了解決上述問題并有效的管理父子連接樹關(guān)系,在父連接信息節(jié)點(diǎn)中保存其對應(yīng)的應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在該應(yīng)用協(xié)議信息節(jié)點(diǎn)中使用一個(gè)鏈表保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針(即為上述的子連接鏈表),每一個(gè)子連接信息節(jié)點(diǎn)的parent指針都指向創(chuàng)建該子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn),child指針指向與該子連接信息節(jié)點(diǎn)匹配成功后創(chuàng)建的應(yīng)用協(xié)議信息節(jié)點(diǎn),并且應(yīng)用協(xié)議信息節(jié)點(diǎn)的parent指針指向其創(chuàng)建者的子連接信息節(jié)點(diǎn)。具體如圖4所示,圖4為父子連接關(guān)系管理示意圖。在通訊過程中,上述父子連接樹也同時(shí)涉及刪除、添加的操作,在單核處理器下一個(gè)時(shí)刻只可能有唯一的CPU訪問關(guān)系樹,但是在多核處理器下可能同時(shí)會有多個(gè)CPU對關(guān)系樹執(zhí)行刪除、添加操作,這樣會導(dǎo)致空指針、鏈表錯(cuò)誤、系統(tǒng)崩潰等一系列問題,為了解決這些問題本發(fā)明采用了以下方法保護(hù)關(guān)系樹的并發(fā)處理安全性。父子連接樹的整棵樹使用一個(gè)關(guān)系樹鎖(tree—lock)來保護(hù),tree—lock為自旋鎖指針,其創(chuàng)建和回收都在根連接的創(chuàng)建和回收時(shí)觸發(fā)執(zhí)行,其他應(yīng)用協(xié)議信息節(jié)點(diǎn)和子連接信息節(jié)點(diǎn)只是引用這個(gè)tree_l0Ck。當(dāng)根連接由連接模塊創(chuàng)建時(shí),tree—lock被創(chuàng)建并將其指針保存在根應(yīng)用協(xié)議信息節(jié)點(diǎn)中;當(dāng)父連接要?jiǎng)?chuàng)建子連接時(shí),父連接從其應(yīng)用協(xié)議信息節(jié)點(diǎn)中取出treejock指針保存在子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn)中,這樣父連接和子連接就共用了一個(gè)tree—lock;當(dāng)父連接被連接模塊回收時(shí),tree—lock不一定被回收,只有在樹的成員都釋放之后才能回收treeJock。這樣保護(hù)后,訪問應(yīng)用協(xié)議信息節(jié)點(diǎn)中的子連接信息鏈表時(shí)的讀取不用對tree—lock上鎖,但訪問到每個(gè)子連接節(jié)點(diǎn)時(shí)需要上節(jié)點(diǎn)鎖來判斷節(jié)點(diǎn)狀態(tài)(如果是上述EXPECT_STATUS_UNLINK或EXPECT_STATUS_DELETED則不做處理),鏈表的添加操作需要上tree—lock來保護(hù),刪除操作需要上節(jié)點(diǎn)鎖修改狀態(tài)(EXPECT_STATUS_UNLINK)并上tree_lock將子連接節(jié)點(diǎn)從其父連接的應(yīng)用協(xié)議信息節(jié)點(diǎn)的鏈表中刪除。由于tree—lock是用來保護(hù)整個(gè)關(guān)系樹的并發(fā)安全的,只有在樹的成員都釋放之8后才能回收treeJock,所以為了保證tree—lock不會被提前或錯(cuò)誤釋放,本發(fā)明實(shí)施例使用引用計(jì)數(shù)器統(tǒng)計(jì)tree—lock的持有者,只有持有者為0時(shí)才能釋放tree_l0Ck。引用計(jì)數(shù)器為原子變量,并且計(jì)數(shù)器的創(chuàng)建、初始化和回收都由根應(yīng)用協(xié)議信息節(jié)點(diǎn)執(zhí)行。當(dāng)創(chuàng)建子連接信息節(jié)點(diǎn)或創(chuàng)建子連接信息節(jié)點(diǎn)對應(yīng)的應(yīng)用協(xié)議信息節(jié)點(diǎn)時(shí),節(jié)點(diǎn)會從其父連接處獲得引用計(jì)數(shù)器并將引用計(jì)數(shù)加l,代表關(guān)系樹中又增加了一個(gè)成員。當(dāng)刪除連接時(shí),需要遍歷整個(gè)關(guān)系樹并刪除當(dāng)前連接的所有子連接,每一個(gè)對應(yīng)到關(guān)系樹的連接(可以子連接,也可以是父連接)被刪除時(shí)引用計(jì)數(shù)器減l,如果引用計(jì)數(shù)為0代表關(guān)系樹中所有節(jié)點(diǎn)都已經(jīng)被釋放,可以釋放tree—lock;如果引用計(jì)數(shù)大于0,代表還有父連接或子連接存在,不能釋放treeJock。綜上所述,本發(fā)明實(shí)施例提供了一種多核下子連接并發(fā)識別與處理的方法,通過子連接狀態(tài)機(jī)策略管理子連接的狀態(tài)并使用關(guān)系樹鎖保證在狀態(tài)變化過程中其他CPU不能中斷或再次改變狀態(tài),有效的提高了從控制連接中識別子連接并進(jìn)行后續(xù)處理的性能,有效的提高了系統(tǒng)的并發(fā)處理能力。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。權(quán)利要求一種多核下子連接并發(fā)識別與處理的方法,其特征在于,所述方法包括步驟A預(yù)設(shè)定子連接狀態(tài)機(jī)策略,父連接根據(jù)所述子連接狀態(tài)機(jī)策略對子連接信息節(jié)點(diǎn)進(jìn)行相應(yīng)的狀態(tài)管理;步驟B建立父子連接樹,并在父連接信息節(jié)點(diǎn)中保存其應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在其應(yīng)用協(xié)議信息節(jié)點(diǎn)中保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針;步驟C對整個(gè)父子連接樹設(shè)置一個(gè)關(guān)系樹鎖,所述關(guān)系樹鎖的創(chuàng)建和回收都在根連接創(chuàng)建和回收時(shí)進(jìn)行;步驟D對所述關(guān)系樹鎖設(shè)置引用計(jì)數(shù)器,并只有當(dāng)引用計(jì)時(shí)器為0時(shí)才釋放所述關(guān)系樹鎖。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述子連接狀態(tài)機(jī)策略包括多個(gè)子連接狀態(tài)及多個(gè)系統(tǒng)鏈表;其中,所述子連接狀態(tài)包括初始狀態(tài)、未處理狀態(tài)、匹配狀態(tài)、已處理狀態(tài)、未連接狀態(tài)和刪除狀態(tài),所述系統(tǒng)鏈表包括未處理鏈表、已處理鏈表和子連接鏈表。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟A具體包括步驟A1:父連接通過解析報(bào)文,對預(yù)計(jì)到達(dá)的子連接創(chuàng)建子連接信息節(jié)點(diǎn);步驟A2:將該子連接信息節(jié)點(diǎn)添加到未處理鏈表中,等待子連接到達(dá)或超時(shí),如果子連接按時(shí)到達(dá)則執(zhí)行步驟A3,如果超時(shí)則執(zhí)行步驟A4;步驟A3:子連接報(bào)文到達(dá)并匹配成功,標(biāo)記該子連接信息節(jié)點(diǎn)狀態(tài)為匹配狀態(tài);然后判斷是否需要后續(xù)處理,如果需要后續(xù)處理,則將該子連接信息節(jié)點(diǎn)添加到已處理鏈表中,并在協(xié)議處理完成后,執(zhí)行步驟A4;如果不需后續(xù)處理,則直接執(zhí)行步驟A4;步驟A4:將該子連接信息節(jié)點(diǎn)從子連接鏈表中取下,并標(biāo)記子連接信息節(jié)點(diǎn)為刪除狀態(tài)。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B具體包括在父連接信息節(jié)點(diǎn)中保存應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在應(yīng)用協(xié)議信息節(jié)點(diǎn)中使用一個(gè)鏈表保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針;其中,每一個(gè)子連接信息節(jié)點(diǎn)的parent指針都指向創(chuàng)建該子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn),child指針指向與該子連接信息節(jié)點(diǎn)匹配成功后創(chuàng)建的應(yīng)用協(xié)議信息節(jié)點(diǎn),并且該創(chuàng)建的應(yīng)用協(xié)議信息節(jié)點(diǎn)的parent指向創(chuàng)建其的子連接信息節(jié)點(diǎn)。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟C具體包括當(dāng)根連接創(chuàng)建時(shí),關(guān)系樹鎖被創(chuàng)建并將其指針保存在根應(yīng)用協(xié)議信息節(jié)點(diǎn)中;當(dāng)父連接要?jiǎng)?chuàng)建子連接時(shí),父連接從其應(yīng)用協(xié)議信息節(jié)點(diǎn)中取出關(guān)系樹鎖指針保存在子連接的應(yīng)用協(xié)議信息節(jié)點(diǎn)中;當(dāng)父子連接樹的所有成員都釋放之后回收關(guān)系樹鎖。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟D具體包括對所述關(guān)系樹鎖設(shè)置引用計(jì)數(shù)器,當(dāng)創(chuàng)建子連接信息節(jié)點(diǎn)或創(chuàng)建子連接信息節(jié)點(diǎn)對應(yīng)的應(yīng)用協(xié)議信息節(jié)點(diǎn)時(shí),子連接信息節(jié)點(diǎn)從其父連接處獲得引用計(jì)數(shù)器并將引用計(jì)數(shù)加1,代表關(guān)系樹中又增加了一個(gè)成員;當(dāng)刪除連接時(shí),遍歷整個(gè)父子連接樹并刪除當(dāng)前連接的所有子連接,每一個(gè)對應(yīng)到關(guān)系樹的連接被刪除時(shí)引用計(jì)數(shù)器減l,判斷引用計(jì)數(shù)是否為O,如果為O,釋放關(guān)系樹鎖,否則不釋放關(guān)系樹鎖。7.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,所述引用計(jì)數(shù)器為原子變量,其其創(chuàng)建、初始化和回收都由根應(yīng)用協(xié)議信息節(jié)點(diǎn)執(zhí)行。8.根據(jù)權(quán)利要求1或4或6所述的方法,其特征在于,所述關(guān)系樹鎖為自旋鎖。全文摘要本發(fā)明公開了一種多核下子連接并發(fā)識別與處理的方法,包括預(yù)設(shè)定子連接狀態(tài)機(jī)策略,父連接根據(jù)所述子連接狀態(tài)機(jī)策略對子連接信息節(jié)點(diǎn)進(jìn)行相應(yīng)的狀態(tài)管理;建立父子連接樹,并在父連接信息節(jié)點(diǎn)中保存其應(yīng)用協(xié)議信息節(jié)點(diǎn)的指針,并在其應(yīng)用協(xié)議信息節(jié)點(diǎn)中保存其創(chuàng)建的所有子連接信息節(jié)點(diǎn)的指針;對整個(gè)父子連接樹設(shè)置一個(gè)關(guān)系樹鎖,所述關(guān)系樹鎖的創(chuàng)建和回收都在根連接創(chuàng)建和回收時(shí)進(jìn)行;對所述關(guān)系樹鎖設(shè)置引用計(jì)數(shù)器,并只有當(dāng)引用計(jì)時(shí)器為0時(shí)才釋放所述關(guān)系樹鎖;本發(fā)明有效的提高了從控制連接中識別子連接并進(jìn)行后續(xù)處理的性能,有效的提高了系統(tǒng)的并發(fā)處理能力。文檔編號H04L9/00GK101771670SQ20081024112公開日2010年7月7日申請日期2008年12月30日優(yōu)先權(quán)日2008年12月30日發(fā)明者陳旭申請人:北京天融信網(wǎng)絡(luò)安全技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1