本發(fā)明互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種釋放連接的方法、裝置及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展及廣泛普及,在互聯(lián)網(wǎng)中進行通信連接的方式也越來越多,例如,對等網(wǎng)絡(luò)(Peer to Peer,P2P)連接。所謂P2P連接為互聯(lián)網(wǎng)中的各個計算機擁有相同的功能,通過P2P連接方式連接的兩個節(jié)點之間可以通過數(shù)據(jù)交互的方式實現(xiàn)計算機資源、存儲及信息服務(wù)的共享。
目前,在P2P網(wǎng)絡(luò)環(huán)境中,計算機節(jié)點與計算機節(jié)點間通過自發(fā)建立通路的方式建立通信連接,建立的通信連接具有隨機性。當(dāng)P2P網(wǎng)絡(luò)環(huán)境中未建立過通信關(guān)系的兩個計算機節(jié)點之間,同時向?qū)Ψ桨l(fā)送連接請求時,可能會出現(xiàn)計算機節(jié)點之間同時為對方建立信道的問題,即兩個相同的計算機節(jié)點間存在兩條雙向通路,稱為“對開連接”,而在實際應(yīng)用中,不同計算機節(jié)點之間的通信僅需一條信道即可。在計算機節(jié)點發(fā)起主動連接時,均會占用一個端口及對應(yīng)的文件描述符,而兩個相同計算機節(jié)點之間建立重復(fù)的連接,會占用不必要的端口資源,此外,在通過心跳監(jiān)測等技術(shù)維護兩個計算機節(jié)點間是通信通路時,造成大量系統(tǒng)資源的浪費。
為了解決上述問題,現(xiàn)有技術(shù)中提供了如下技術(shù)方案一,包括:在建立對開連接的兩個計算機節(jié)點間進行通信時,優(yōu)先使用計算機節(jié)點其自身作為連接發(fā)起方所創(chuàng)建的通信通路,使用連接生存期自動斷開對開連接,即計算機節(jié)點作為連接發(fā)起方如果在預(yù)定時間段內(nèi)未發(fā)送任何通信數(shù)據(jù)(即連接發(fā)起方的計算機節(jié)點在預(yù)定時間段內(nèi)處于空閑狀態(tài)),則關(guān)閉該條通信通路,能夠在一定程度上解決對開連接造成的端口占用及系統(tǒng)資源的大量浪費的情況。雖然連接發(fā)起方的計算機節(jié)點能夠監(jiān)控其是否空閑狀態(tài),但是,只有當(dāng)連接發(fā)起方的計算機節(jié)點在超過空閑狀態(tài)下的預(yù)定時間段內(nèi)未向?qū)Ψ桨l(fā)送通信數(shù)據(jù)時,才會關(guān)閉對開連接,若連接發(fā)起方的計算機節(jié)點向?qū)Ψ桨l(fā)送通信數(shù)據(jù)的時間間隔小于處于空閑狀態(tài)的預(yù)定時間間隔,則上述計算機節(jié)點之間會持續(xù)保持對開連接。
上述現(xiàn)有技術(shù)中提供的技術(shù)方案一雖然能夠在一定程度上解決計算機節(jié)點間對開連接造成的端口占用及系統(tǒng)資源的大量浪費的問題,但是,該種方式取決于發(fā)起方的計算機節(jié)點的空閑狀態(tài)。為了解決技術(shù)方案一存在的確定,現(xiàn)有技術(shù)中提供如下技術(shù)方案二,包括:在兩個計算機節(jié)點建立通信時,請求第三方仲裁,即在P2P網(wǎng)絡(luò)環(huán)境中,確定一個計算機節(jié)點作為仲裁節(jié)點,當(dāng)兩個計算機節(jié)點間存在對開連接時,請求第三方仲裁,仲裁過程包括:計算機節(jié)點A與計算機節(jié)點B在確定存在對開連接后,分別向第三方仲裁發(fā)送請求仲裁信息,由第三方仲裁確定斷開計算機節(jié)點A與計算機節(jié)點B間的其中一條通信通路,以解決對開連接時占用不必要的端口資源,及系統(tǒng)資源大量浪費的問題,但是,該種實現(xiàn)方式中,仲裁的過程依賴于第三方節(jié)點,仲裁過程中,計算機節(jié)點A與計算機節(jié)點B必須與第三方節(jié)點建立單獨連接,若計算機節(jié)點A或者計算機節(jié)點B與第三方節(jié)點的通信存在問題,則仲裁過程中斷,繼而可能影響計算機節(jié)點A與計算機節(jié)點B之間的通信;因此,通過請求第三方仲裁的方式仲裁過程復(fù)雜,易出錯,且效率低。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供的一種釋放連接的方法、裝置及系統(tǒng),主要目的在于解決現(xiàn)有技術(shù)中在斷開兩個計算節(jié)點之間的對開連接時,需依賴于第三方仲裁斷開對開連接中的一條連接,但是,仲裁過程復(fù)雜,易出錯,且效率低的問題。
第一方面,本發(fā)明提供了一種釋放連接的方法,包括:
當(dāng)兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值;
將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點和所述第二計算節(jié)點隨機生成的數(shù)值;
若所述第二裁決權(quán)值與所述第一裁決權(quán)值不同,則斷開對開連接中的一條連接。
可選的,斷開對開連接中的一條連接包括:
若所述第一裁決權(quán)值大于所述第二裁決權(quán)值,則保留所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接,并斷開所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接;
若確定所述第一裁決權(quán)值小于所述第二裁決權(quán)值,則保留所述第二計算節(jié)點向所述第一計算節(jié)點發(fā)起的連接,并斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接。
可選的,所述方法還包括:
若確定所述第二裁決權(quán)值等于所述第一裁決權(quán)值,則接收所述第二計算節(jié)點發(fā)送的第四裁決權(quán)值,并將所述第四裁決權(quán)值與自身的第三裁決值進行比對,直到確定第二計算節(jié)點發(fā)送的裁決權(quán)值與自身的裁決權(quán)值不相同為止。
可選的,在第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值之前,所述方法還包括:
獲取主動連接列表,所述主動連接列表中所述第一計算節(jié)點作為連接發(fā)起方,用于記錄所述第一計算節(jié)點向第二計算節(jié)點發(fā)送建立連接請求中,第二計算節(jié)點的信息;
獲取被動連接列表,所述被動連接列表中所述第一計算節(jié)點作為被連接方,用于記錄接收所述第二計算節(jié)點發(fā)送所述建立連接請求中,第二計算節(jié)點的信息;
分別從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息;
若確定從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息一致,則確定所述第一計算節(jié)點與所述第二計算節(jié)點之間存在對開連接。
可選的,斷開對開連接中的一條連接,包括:
接收斷開操作指令,所述斷開操作指令用于指示由所述第一計算節(jié)點斷開對開連接中的一條連接;
或者,向所述第二計算節(jié)點發(fā)送斷開連接通知消息,所述斷開連接通知消息用于指示由所述第二計算節(jié)點執(zhí)行斷開對開連接中的一條連接。
可選的,將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對包括:
分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析;
獲取所述第一裁決權(quán)值對應(yīng)的第一當(dāng)前裁決ID,并獲取所述第二裁決權(quán)值對應(yīng)的第二當(dāng)前裁決ID;其中,裁決ID用于標(biāo)識當(dāng)前裁決權(quán)值的比對次數(shù);
將所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID進行比對;
若確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID相同,則將所述第一裁決權(quán)值與所述第二裁決權(quán)值比對;
若確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID不相同,則分別獲取當(dāng)前最大裁決ID對應(yīng)的裁決權(quán)值,并比對獲取后的裁決權(quán)值。
第二方面,本發(fā)明提供了一種釋放連接的裝置,該裝置包括:
第一接收單元,用于當(dāng)兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值;
比對單元,用于將所述接收單元接收到的所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點和所述第二計算節(jié)點隨機生成的數(shù)值;
斷開單元,用于當(dāng)所述比對單元比對所述第二裁決權(quán)值與所述第一裁決權(quán)值不同時,斷開對開連接中的一條連接。
可選的,所述斷開單元包括:
第一處理模塊,用于當(dāng)所述第一裁決權(quán)值大于所述第二裁決權(quán)值時,保留所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接,并斷開所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接;
第二處理模塊,用于當(dāng)確定所述第一裁決權(quán)值小于所述第二裁決權(quán)值時,保留所述第二計算節(jié)點向所述第一計算節(jié)點發(fā)起的連接,并斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接。
可選的,所述裝置還包括:
第二接收單元,用于當(dāng)所述比對單元確定所述第二裁決權(quán)值等于所述第一裁決權(quán)值時,接收所述第二計算節(jié)點發(fā)送的第四裁決權(quán)值;
處理單元,用于將所述第二接收單元接收到的所述第四裁決權(quán)值與自身的第三裁決值進行比對,直到確定第二計算節(jié)點發(fā)送的裁決權(quán)值與自身的裁決權(quán)值不相同為止。
可選的,所述裝置還包括:
第一獲取單元,用于在所述第一接收單元接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值之前,獲取主動連接列表,所述主動連接列表中所述第一計算節(jié)點作為連接發(fā)起方,用于記錄所述第一計算節(jié)點向第二計算節(jié)點發(fā)送建立連接請求中,第二計算節(jié)點的信息;
第二獲取單元,用于獲取被動連接列表,所述被動連接列表中所述第一計算節(jié)點作為被連接方,用于記錄接收所述第二計算節(jié)點發(fā)送所述建立連接請求中,第二計算節(jié)點的信息;
第三獲取單元,用于分別從所述第一獲取單元獲取的所述主動連接列表及所述第二獲取單元獲取的所述被動連接列表中獲取第二計算節(jié)點的信息;
確定單元,用于當(dāng)確定從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息一致時,確定所述第一計算節(jié)點與所述第二計算節(jié)點之間存在對開連接。
可選的,所述斷開單元還包括:
接收模塊,用于接收斷開操作指令,所述斷開操作指令用于指示由所述第一計算節(jié)點斷開對開連接中的一條連接;
發(fā)送模塊,用于向所述第二計算節(jié)點發(fā)送斷開連接通知消息,所述斷開連接通知消息用于指示由所述第二計算節(jié)點執(zhí)行斷開對開連接中的一條連接。
可選的,所述比對單元包括:
解析模塊,用于分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析;
獲取模塊,用于在所述解析模塊分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析過程中,獲取所述第一裁決權(quán)值對應(yīng)的第一當(dāng)前裁決ID,并獲取所述第二裁決權(quán)值對應(yīng)的第二當(dāng)前裁決ID;其中,裁決ID用于標(biāo)識當(dāng)前裁決權(quán)值的比對次數(shù);
第一比對模塊,用于將所述獲取模塊獲取的所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID進行比對;
第二比對模塊,用于當(dāng)所述第一比對模塊確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID相同時,將所述第一裁決權(quán)值與所述第二裁決權(quán)值比對;
處理模塊,用于當(dāng)所述第一比對模塊確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID不相同時,分別獲取當(dāng)前最大裁決ID對應(yīng)的裁決權(quán)值,并比對獲取后的裁決權(quán)值。
第三方面,本發(fā)明提供一種釋放連接的系統(tǒng),包括:第一計算節(jié)點及第二計算節(jié)點;其中,
所述第二計算節(jié)點,用于當(dāng)所述第一計算節(jié)點與所述第二計算節(jié)點存在對來連接時,向所述第一計算節(jié)點發(fā)送第二裁決權(quán)值;
所述第一計算節(jié)點,用于接收所述第二計算節(jié)點發(fā)送的所述第二裁決權(quán)值,并將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,當(dāng)所述第二裁決權(quán)值與所述第一裁決權(quán)值不同時,斷開對開連接中的一條連接;其中,所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點和所述第二計算節(jié)點隨機生成的數(shù)值。
可選的,所述系統(tǒng)還包括:
所述第一計算節(jié)點,還用于接收并執(zhí)行斷開操作指令,所述斷開操作指令用于斷開對開連接中的一條連接;
所述第一計算節(jié)點,還用于向所述第二計算節(jié)點發(fā)送斷開連接通知消息,所述斷開連接通知消息用于指示由所述第二計算節(jié)點執(zhí)行斷開對開連接中的一條連接;
所述第二計算節(jié)點,還用于接收所述第一計算節(jié)點發(fā)送的所述斷開連接通知消息,并執(zhí)行斷開對開連接中的一條連接。
借由上述技術(shù)方案,本發(fā)明提供的釋放連接的方法、裝置及系統(tǒng),當(dāng)確定兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,將第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,若確定第二裁決權(quán)值與第一裁決權(quán)值不同,則斷開對開連接中的一條連接,與現(xiàn)有技術(shù)相比,本發(fā)明在確定兩個計算節(jié)點存在對開連接的情況下,可以在該兩個計算節(jié)點之間自行協(xié)商,斷開對開連接中任一條連接,實現(xiàn)兩個計算節(jié)點之間通過一條連接進行通信,該自行協(xié)商的過程簡單、高效且易實現(xiàn),從而能夠減少對開連接對系統(tǒng)資源及網(wǎng)絡(luò)資源的消耗。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種釋放連接的方法的流程圖;
圖2示出了本發(fā)明實施例提供的一種兩個計算節(jié)點間的對開連接的示意圖;
圖3示出了本發(fā)明實施例提供的一種計算節(jié)點之間執(zhí)行裁決過程的示意圖;
圖4示出了本發(fā)明實施例提供的一種斷開對開連接中的一條連接的示意圖;
圖5示出了本發(fā)明實施例一種釋放連接的裝置的組成框圖;
圖6示出了本發(fā)明實施例另一種釋放連接的裝置的組成框圖;
圖7示出了本發(fā)明實施例一種釋放連接的系統(tǒng)的組成框圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供一種釋放連接的方法,如圖1所示,所述方法包括:
101、當(dāng)兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值。
本發(fā)明實施例應(yīng)用于對等網(wǎng)絡(luò)(Peer to Peer,P2P)環(huán)境中,存在多個計算節(jié)點,該些計算節(jié)點具體相同的功能,無主次之分,即P2P網(wǎng)絡(luò)環(huán)境中的所有計算節(jié)點都處于對等地位,任意兩個計算節(jié)點之間可直接共享計算機資源和服務(wù)。
在P2P網(wǎng)絡(luò)環(huán)境中,計算節(jié)點與計算節(jié)點自發(fā)的建立通信通路,及節(jié)點之間的通信具有隨機性,以下以P2P網(wǎng)絡(luò)環(huán)境中的任意兩個計算節(jié)點:第一計算節(jié)點與第二計算節(jié)點為例進行說明。第一計算節(jié)點作為連接發(fā)起方,向第二計算節(jié)點發(fā)送建立連接請求,建立第一計算節(jié)點與第二計算節(jié)點之間的通路;此時,第二計算節(jié)點作為連接發(fā)起方,向第一計算節(jié)點發(fā)送建立連接的請求,建立第二計算節(jié)點與第一計算節(jié)點之間的通路。此時,第一計算節(jié)點與第二計算節(jié)點之后存在兩條通信通路,即第一計算節(jié)點與第二計算節(jié)點之間存在對開連接,而在實際應(yīng)用中,兩個節(jié)點之間的通信,只需一條通信通路即可,若兩個相同的計算節(jié)點之間存在兩條通信通路,則會造成系統(tǒng)資源的浪費。
由上述可以得出,兩個計算節(jié)點存在對開連接的條件為:兩個計算節(jié)點之間從未通信,并且兩個計算節(jié)點同時向?qū)Ψ桨l(fā)送建立網(wǎng)絡(luò)通信連接的請求,該種連接方式會出現(xiàn)兩個計算節(jié)點同時向?qū)Ψ浇⑼ㄐ判诺?,即兩個計算節(jié)點之間存在對開連接。
需要說明的是,這里的第一計算節(jié)點與第二計算階段僅是為了描述上的方便,其并不是指一個P2P網(wǎng)絡(luò)環(huán)境中只有兩個節(jié)點,而是可以包括者多個計算節(jié)點,且每個計算節(jié)點均具有相同的功能。
在現(xiàn)有技術(shù)中,假設(shè),一個對等網(wǎng)絡(luò)(Peer to Peer,P2P)環(huán)境中,包含N=30個計算節(jié)點,理論上,兩個計算節(jié)點之間建立N(N-1)/2=435個連接即可實現(xiàn)P2P網(wǎng)絡(luò)環(huán)境中所有節(jié)點之間的通信,但是,在實際應(yīng)用中,最壞的情況下可能會產(chǎn)生N(N-1)=870個連接,實際建立的連接個數(shù)比理論上建立的連接個數(shù)多出一倍,計算節(jié)點與計算節(jié)點之間建立了無用的連接,造成計算節(jié)點上端口的占用,此外,將無畏浪費大量的系統(tǒng)資源及網(wǎng)絡(luò)資源。
為了解決上述問題,本發(fā)明實施例中,當(dāng)確定兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,第二計算節(jié)點接收第一計算節(jié)點發(fā)送的第一裁決權(quán)值,其中,裁決權(quán)值為計算節(jié)點隨機生成的數(shù)值,且該數(shù)值有一個數(shù)值范圍,例如,數(shù)值范圍為0-65535等等,具體的,在設(shè)定裁決權(quán)值的數(shù)值范圍時,數(shù)值范圍越大,一次性裁決成功的機率越大,數(shù)值范圍設(shè)置的越小,一次性裁決成功的機率越小,具體的本發(fā)明實施例對裁決權(quán)值的數(shù)值范圍不作限定。
作為本發(fā)明實施例的另一種實現(xiàn)方式,在第一計算節(jié)點與第二計算節(jié)點建立對開網(wǎng)絡(luò)后,第一計算節(jié)點與第二計算節(jié)點首次發(fā)送裁決權(quán)值時,可以直接使用連接發(fā)起方占用的本地端口號,該本地端口號為建立傳輸控制協(xié)議(Transmission Control Protocol,TCP)連接時,連接發(fā)起方會隨機占用本地一個端口,將該本地端口號作為裁決權(quán)值,能夠加快裁決速度。該種說明方式并非意在限定裁決權(quán)值僅能為連接發(fā)起方占用的本地端口號。
在實際應(yīng)用中,第一計算節(jié)點與第二計算節(jié)點建立對開連接后,兩者均要向?qū)Ψ桨l(fā)送其自身的裁決權(quán)值,以便將兩者的裁決權(quán)值進行比對,即第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,第二計算節(jié)點接收第一計算節(jié)點發(fā)送的第一裁決權(quán)值。以下,將以第一計算節(jié)點為例對裁決的過程進行說明。
102、第一計算節(jié)點將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對。
所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點和所述第二計算節(jié)點隨機生成的數(shù)值。
由于裁決權(quán)值實質(zhì)為一個數(shù)值,其具有大小之分,在第一計算節(jié)點將第一裁決權(quán)值與第二裁決權(quán)值進行比對時,比對第一裁決權(quán)值與第二裁決權(quán)值的數(shù)值大小即可。示例性的,假設(shè),第一裁決權(quán)值為36,第二裁決權(quán)值為50,則第一計算節(jié)點確定第一裁決權(quán)值與第二裁決權(quán)值不同,且第一裁決權(quán)值小于第二裁決權(quán)值,以上僅為示例性的舉例,本發(fā)明實施例對裁決權(quán)值的具體大小不作限定。
103、若所述第二裁決權(quán)值與所述第一裁決權(quán)值不同,則第一計算節(jié)點斷開對開連接中的一條連接。
當(dāng)?shù)诙脹Q權(quán)值與第一裁決權(quán)值不同時,包括:第二裁決權(quán)值大于第一裁決權(quán)值、第二裁決權(quán)值小于第一裁決權(quán)值兩種情況,上述兩種情況中的任一比對結(jié)果確定時,第一計算節(jié)點主動斷開對開連接中的其中一條連接,或者,第一計算節(jié)點向第二計算節(jié)點發(fā)送指示信息,由第二計算節(jié)點斷開對開連接中的其中一條連接。
本發(fā)明實施例提供的釋放連接的方法,當(dāng)確定兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,將第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,若確定第二裁決權(quán)值與第一裁決權(quán)值不同,則斷開對開連接中的一條連接,與現(xiàn)有技術(shù)相比,本發(fā)明實施例在確定兩個計算節(jié)點存在對開連接的情況下,可以在該兩個計算節(jié)點之間自行協(xié)商,斷開對開連接中任一條連接,實現(xiàn)兩個計算節(jié)點之間通過一條連接進行通信,該自行協(xié)商的過程簡單、高效且易實現(xiàn),從而能夠減少對開連接對系統(tǒng)資源及網(wǎng)絡(luò)資源的消耗。
進一步的,作為對上述實施例的細(xì)化和擴展,在步驟103執(zhí)行斷開對開連接中的一條連接,由于對開連接中包含兩個計算節(jié)點之間的兩條連接,以下,將詳細(xì)說明如何確定斷開對開連接中的哪一條連接。
第一種情況:當(dāng)所述第一裁決權(quán)值大于所述第二裁決權(quán)值時,斷開所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接。
圖2示出了本發(fā)明實施例提供的一種兩個計算節(jié)點間的對開連接的示意圖,如圖2所示,第一計算節(jié)點作為連接發(fā)起方,第二計算節(jié)點作為被連接方時,第一計算節(jié)點與第二計算節(jié)點的連接為連接I,當(dāng)?shù)诙嬎愎?jié)點作為連接發(fā)起方,第一計算節(jié)點作為被連接方時,第一計算節(jié)點與第二計算節(jié)點的連接為連接II。
將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,當(dāng)所述第一裁決權(quán)值大于所述第二裁決權(quán)值時,保留所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接I,并斷開所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接II;即第一計算節(jié)點對應(yīng)的裁決權(quán)值與第二計算節(jié)點對應(yīng)的裁決權(quán)值存在大小不同時,保留裁決權(quán)值相對較大一側(cè)的計算節(jié)點所主動發(fā)起的連接。
在實際應(yīng)用中,若確定第一裁決權(quán)值大于所述第二裁決權(quán)值時,保留所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接II,斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接I,具體的,本發(fā)明實施例對此不作限定。
第二種情況:當(dāng)確定所述第一裁決權(quán)值小于所述第二裁決權(quán)值時,斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接。
請繼續(xù)參閱圖2,將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對若確定所述第一裁決權(quán)值小于所述第二裁決權(quán)值,則保留所述第二計算節(jié)點向所述第一計算節(jié)點發(fā)起的連接II,并斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接I。
進一步的,以上已說明所述第一裁決權(quán)值小于或者大于所述第二裁決權(quán)值的情況,若確定所述第一裁決權(quán)值等于所述第二裁決權(quán)值,則接收第二計算節(jié)點發(fā)送的第四裁決權(quán)值,并將第四裁決權(quán)值與自身的第三裁決權(quán)值進行比對,直到確定第二計算節(jié)點發(fā)送的裁決權(quán)值與自身的裁決權(quán)值不相同為止。
進一步的,在第一計算節(jié)點將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對時,可以采用但不局限于以下方式實現(xiàn),分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析,獲取所述第一裁決權(quán)值對應(yīng)的第一當(dāng)前裁決ID,并獲取所述第二裁決權(quán)值對應(yīng)的第二當(dāng)前裁決ID;其中,裁決ID用于標(biāo)識當(dāng)前裁決權(quán)值的比對次數(shù);將所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID進行比對;若確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID相同,則將所述第一裁決權(quán)值與所述第二裁決權(quán)值比對;若確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID不相同,則分別獲取當(dāng)前最大裁決ID對應(yīng)的裁決權(quán)值,并比對獲取后的裁決權(quán)值。
示例性的,圖3示出了本發(fā)明實施例提供的一種計算節(jié)點之間執(zhí)行裁決過程的示意圖,如圖3所示,圖3所示的實線流程均為第一計算節(jié)點執(zhí)行的流程,虛線部分均為第二計算節(jié)點執(zhí)行的流程,在P2P網(wǎng)絡(luò)環(huán)境中,第一計算節(jié)點與第二計算節(jié)點在進行裁決過程中雙方同時執(zhí)行,其雙方執(zhí)行的步驟一致。為了敘述上的方便,本發(fā)明實施例以第一計算節(jié)點為例進行說明。在第一計算節(jié)點與第二計算節(jié)點執(zhí)行第一輪裁決時,第一計算節(jié)點生成第一當(dāng)前裁決ID:1,并生成第一裁決權(quán)值:50,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,該第二裁決權(quán)值中包含第二當(dāng)前裁決ID,在第一計算節(jié)點執(zhí)行第一裁決權(quán)值與第二裁決權(quán)值的比對時,首先,將第一當(dāng)前裁決ID與第二當(dāng)前裁決ID進行比對,其目的在于,確定兩個節(jié)點之間比對的次數(shù)是否相同,當(dāng)確定第一當(dāng)前裁決ID(1)與第二當(dāng)前裁決ID(1)相同時,則繼續(xù)比對第一裁決權(quán)值與所述第二裁決權(quán)值,確定第一裁決權(quán)值與所述第二裁決權(quán)值相同,則繼續(xù)執(zhí)行第二輪裁決;當(dāng)且僅當(dāng)確定第一裁決權(quán)值與所述第二裁決權(quán)值不同時,才能終止裁決過程。第二輪裁決過程與第一輪裁決過程相同,本發(fā)明實施例在此不再進行一一贅述。
如圖4所示,圖4示出了本發(fā)明實施例提供的一種斷開對開連接中的一條連接的示意圖,承由圖3所示,第一計算節(jié)點確定第三裁決權(quán)值大于第四裁決權(quán)值,即關(guān)閉第二計算節(jié)點到第一計算節(jié)點的通路。
在實際應(yīng)用中,兩個節(jié)點在網(wǎng)絡(luò)通信過程中,可能會存在網(wǎng)絡(luò)延遲的情況,可能會導(dǎo)致第一計算節(jié)點生成的裁決ID與第二計算節(jié)點發(fā)送的裁決ID不一致的情況。假設(shè),計算節(jié)點在生成裁決ID時,按照阿拉巴數(shù)字大小進行排序,第一計算節(jié)點在執(zhí)行裁決過程中,若第一計算節(jié)點獲取的裁決ID為2,而接收到的第二計算節(jié)點發(fā)送的裁決ID為3,即第一計算節(jié)點生成的裁決ID與第二計算節(jié)點發(fā)送的裁決ID不一致,此時,第一計算節(jié)點應(yīng)獲取裁決ID為3對應(yīng)的裁決權(quán)值,以確保第一計算節(jié)點比對的裁決權(quán)值與第二計算節(jié)點發(fā)送的裁決權(quán)值為同一論的比較,確保裁決過程的準(zhǔn)確性。
進一步的,本發(fā)明實施例用于在兩個計算節(jié)點存在對開連接時,通過兩個計算節(jié)點之間的協(xié)商,確定斷開對開連接中的其中一條,因此,在執(zhí)行裁決前,首先,需確定兩個計算節(jié)點之間是否存在對開連接,具體實施過程可以采用但不局限于以下方式實現(xiàn),包括:獲取主動連接列表,所述主動連接列表中所述第一計算節(jié)點作為連接發(fā)起方,用于記錄所述第一計算節(jié)點向第二計算節(jié)點發(fā)送建立連接請求中,第二計算節(jié)點的信息;獲取被動連接列表,所述被動連接列表中所述第一計算節(jié)點作為被連接方,用于記錄接收所述第二計算節(jié)點發(fā)送所述建立連接請求中,第二計算節(jié)點的信息;分別從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息;若確定從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息一致,則確定所述第一計算節(jié)點與所述第二計算節(jié)點之間存在對開連接。在實際應(yīng)用中,所述第二計算節(jié)點的信息包括但不局限于MAC地址(Media Access Control)、互聯(lián)網(wǎng)協(xié)議地址(Internet Protocol Address,IP)、中央處理器(Central Processing Unit,CPU)編碼等等,具體的,本發(fā)明實施例對被動連接列表以及主動連接列表中記錄的第二計算節(jié)點的信息不作具體限定。
進一步的,第一計算節(jié)點與第二計算節(jié)點在進行通信時,通過TCP協(xié)議進行傳輸數(shù)據(jù),該傳輸協(xié)議具有雙向可傳輸性,因此,在兩個計算節(jié)點建立通信時,依靠一條通信連接即可完成不同計算節(jié)點之間的數(shù)據(jù)通信。若兩個計算節(jié)點間存在對開連接時,需斷開對開連接中的一條連接。在具體實施時,可由第一計算節(jié)點主動斷開連接,即第一計算節(jié)點接收斷開操作指令,該斷開操作指令用于指示斷開對開連接中的任意一條連接;或者,也可以由第二計算節(jié)點斷開連接,即第一計算節(jié)點向第二計算節(jié)點發(fā)送斷開連接通知消息,該斷開連接通知消息用于指示第二計算節(jié)點執(zhí)行斷開對開連接中的一條連接。有關(guān)斷開TCP連接的具體實現(xiàn)過程,請參考現(xiàn)有技術(shù)中相關(guān)的詳細(xì)描述,本發(fā)明實施例在此不再進行贅述。
進一步的,作為對上述圖1所示方法的實現(xiàn),本發(fā)明另一實施例還提供了一種釋放連接的裝置。該裝置實施例與前述方法實施例對應(yīng),為便于閱讀,本裝置實施例不再對前述方法實施例中的細(xì)節(jié)內(nèi)容進行逐一贅述,但應(yīng)當(dāng)明確,本實施例中的裝置能夠?qū)?yīng)實現(xiàn)前述方法實施例中的全部內(nèi)容。
進一步的,本發(fā)明實施例一種釋放連接的裝置,如圖5所示,該裝置包括:
第一接收單元51,用于當(dāng)兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值;
比對單元52,用于將所述接收單元51接收到的所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點和所述第二計算節(jié)點隨機生成的數(shù)值;
斷開單元53,用于當(dāng)所述比對單元52比對所述第二裁決權(quán)值與所述第一裁決權(quán)值不同時,斷開對開連接中的一條連接。
進一步的,如圖6所示,所述斷開單元53包括:
第一處理模塊531,用于當(dāng)所述第一裁決權(quán)值大于所述第二裁決權(quán)值時,保留所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接,并斷開所述第二計算節(jié)點向第一計算節(jié)點發(fā)起的連接;
第二處理模塊532,用于當(dāng)確定所述第一裁決權(quán)值小于所述第二裁決權(quán)值時,保留所述第二計算節(jié)點向所述第一計算節(jié)點發(fā)起的連接,并斷開所述第一計算節(jié)點向所述第二計算節(jié)點發(fā)起的連接。
進一步的,如圖6所示,所述裝置還包括:
第二接收單元54,用于當(dāng)所述比對單元52確定所述第二裁決權(quán)值等于所述第一裁決權(quán)值時,接收所述第二計算節(jié)點發(fā)送的第四裁決權(quán)值;
處理單元55,用于將所述第二接收單元54接收到的所述第四裁決權(quán)值與自身的第三裁決值進行比對,直到確定第二計算節(jié)點發(fā)送的裁決權(quán)值與自身的裁決權(quán)值不相同為止。
進一步的,如圖6所示,所述裝置還包括:
第一獲取單元56,用于在所述第一接收單元51接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值之前,獲取主動連接列表,所述主動連接列表中所述第一計算節(jié)點作為連接發(fā)起方,用于記錄所述第一計算節(jié)點向第二計算節(jié)點發(fā)送建立連接請求中,第二計算節(jié)點的信息;
第二獲取單元57,用于獲取被動連接列表,所述被動連接列表中所述第一計算節(jié)點作為被連接方,用于記錄接收所述第二計算節(jié)點發(fā)送所述建立連接請求中,第二計算節(jié)點的信息;
第三獲取單元58,用于分別從所述第一獲取單元56獲取的所述主動連接列表及所述第二獲取單元57獲取的所述被動連接列表中獲取第二計算節(jié)點的信息;
確定單元59,用于當(dāng)確定從所述主動連接列表及所述被動連接列表中獲取第二計算節(jié)點的信息一致時,確定所述第一計算節(jié)點與所述第二計算節(jié)點之間存在對開連接。
進一步的,如圖6所示,所述斷開單元53還包括:
接收模塊533,用于接收斷開操作指令,所述斷開操作指令用于指示由所述第一計算節(jié)點斷開對開連接中的一條連接;
發(fā)送模塊534,用于向所述第二計算節(jié)點發(fā)送斷開連接通知消息,所述斷開連接通知消息用于指示由所述第二計算節(jié)點執(zhí)行斷開對開連接中的一條連接。
進一步的,如圖6所示,所述比對單元52包括:
解析模塊521,用于分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析;
獲取模塊522,用于在所述解析模塊521分別對所述第一裁決權(quán)值及所述第二裁決權(quán)值進行解析過程中,獲取所述第一裁決權(quán)值對應(yīng)的第一當(dāng)前裁決ID,并獲取所述第二裁決權(quán)值對應(yīng)的第二當(dāng)前裁決ID;其中,裁決ID用于標(biāo)識當(dāng)前裁決權(quán)值的比對次數(shù);
第一比對模塊523,用于將所述獲取模塊522獲取的所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID進行比對;
第二比對模塊524,用于當(dāng)所述第一比對模塊523確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID相同時,將所述第一裁決權(quán)值與所述第二裁決權(quán)值比對;
處理模塊525,用于當(dāng)所述第一比對模塊523確定所述第一當(dāng)前裁決ID與所述第二當(dāng)前裁決ID不相同時,分別獲取當(dāng)前最大裁決ID對應(yīng)的裁決權(quán)值,并比對獲取后的裁決權(quán)值。
進一步的,本發(fā)明實施例還提供一種釋放連接的系統(tǒng),如圖7所示,所述系統(tǒng)包括:第一計算節(jié)點71及第二計算節(jié)點72;其中,
所述第二計算節(jié)點72,用于當(dāng)所述第一計算節(jié)點71與所述第二計算節(jié)點72存在對來連接時,向所述第一計算節(jié)點71發(fā)送第二裁決權(quán)值;
所述第一計算節(jié)點71,用于接收所述第二計算節(jié)點72發(fā)送的所述第二裁決權(quán)值,并將所述第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,當(dāng)所述第二裁決權(quán)值與所述第一裁決權(quán)值不同時,斷開對開連接中的一條連接;其中,所述第一裁決權(quán)值與所述第二裁決權(quán)值分別為所述第一計算節(jié)點71和所述第二計算節(jié)點72隨機生成的數(shù)值。
進一步的,所述系統(tǒng)還包括:
所述第一計算節(jié)點71,還用于接收并執(zhí)行斷開操作指令,所述斷開操作指令用于斷開對開連接中的一條連接;
所述第一計算節(jié)點71,還用于向所述第二計算節(jié)點72發(fā)送斷開連接通知消息,所述斷開連接通知消息用于指示由所述第二計算節(jié)點72執(zhí)行斷開對開連接中的一條連接;
所述第二計算節(jié)點72,還用于接收所述第一計算節(jié)點71發(fā)送的所述斷開連接通知消息,并執(zhí)行斷開對開連接中的一條連接。
本發(fā)明實施例提供的釋放連接的裝置及系統(tǒng),當(dāng)確定兩個計算節(jié)點之間存在對開連接時,第一計算節(jié)點接收第二計算節(jié)點發(fā)送的第二裁決權(quán)值,將第二裁決權(quán)值與自身的第一裁決權(quán)值進行比對,若確定第二裁決權(quán)值與第一裁決權(quán)值不同,則斷開對開連接中的一條連接,與現(xiàn)有技術(shù)相比,本發(fā)明實施例在確定兩個計算節(jié)點存在對開連接的情況下,可以在該兩個計算節(jié)點之間自行協(xié)商,斷開對開連接中任一條連接,實現(xiàn)兩個計算節(jié)點之間通過一條連接進行通信,該自行協(xié)商的過程簡單、高效且易實現(xiàn),從而能夠減少對開連接對系統(tǒng)資源及網(wǎng)絡(luò)資源的消耗。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的發(fā)明名稱(如確定網(wǎng)站內(nèi)鏈接等級的裝置)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。