一種基于ap的p2p傳輸方法和系統(tǒng)的制作方法
【專利說(shuō)明】一種基于AP的P2P傳輸方法和系統(tǒng)
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),具體來(lái)說(shuō),涉及一種基于AP的P2P傳輸方法和系統(tǒng)。
[0003]
【背景技術(shù)】
[0004]無(wú)線接入點(diǎn)即無(wú)線AP (Access Point)它是一個(gè)無(wú)線網(wǎng)絡(luò)的接入點(diǎn),主要有路由交換接入一體設(shè)備和純接入點(diǎn)設(shè)備,一體設(shè)備執(zhí)行接入和路由工作,純接入設(shè)備只負(fù)責(zé)無(wú)線客戶端的接入,純接入設(shè)備通常作為無(wú)線網(wǎng)絡(luò)擴(kuò)展使用,與其他AP或者主AP連接,以擴(kuò)大無(wú)線覆蓋范圍,而一體設(shè)備一般是無(wú)線網(wǎng)絡(luò)的核心。
[0005]對(duì)等計(jì)算(Peer to Peer,簡(jiǎn)稱P2P)可以簡(jiǎn)單的定義成通過(guò)直接交換來(lái)共享計(jì)算機(jī)資源和服務(wù),而對(duì)等計(jì)算模型應(yīng)用層形成的網(wǎng)絡(luò)通常稱為對(duì)等網(wǎng)絡(luò)。在P2P網(wǎng)絡(luò)環(huán)境中,成千上萬(wàn)臺(tái)彼此連接的計(jì)算機(jī)都處于對(duì)等的地位,整個(gè)網(wǎng)絡(luò)一般來(lái)說(shuō)不依賴專用的集中服務(wù)器。網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)既能充當(dāng)網(wǎng)絡(luò)服務(wù)的請(qǐng)求者,又對(duì)其它計(jì)算機(jī)的請(qǐng)求作出響應(yīng),提供資源和服務(wù)。通常這些資源和服務(wù)包括:信息的共享和交換、計(jì)算資源(如CPU的共享)、存儲(chǔ)共享(如緩存和磁盤空間的使用)等。
[0006]而在現(xiàn)有技術(shù)中,無(wú)線間的通信技術(shù)隨著無(wú)線設(shè)備的普及也在飛速進(jìn)步,如何提高設(shè)備間的通信速度和訪問(wèn)質(zhì)量,已成為企業(yè)提高自身競(jìng)爭(zhēng)力所面臨的基本課題,包括廣播、多播、點(diǎn)對(duì)點(diǎn)等各方面,理論上可以提高的方法均有可突破點(diǎn),其中,基于P2P的有線傳播技術(shù),工程師們通過(guò)改變通信結(jié)構(gòu)等方法,提高傳輸質(zhì)量;某些方法應(yīng)用到無(wú)線網(wǎng)絡(luò)里來(lái),也有所幫助,但無(wú)線設(shè)備受制于硬件限制,其系統(tǒng)環(huán)境,硬件處理能力都無(wú)法與大型設(shè)備相比;因此,如何利用有限的資源成為無(wú)線設(shè)備上的難題之一。當(dāng)下,國(guó)內(nèi)各大IT領(lǐng)軍企業(yè)紛紛推出連接電視的各種wifi,既為對(duì)P2P技術(shù)的一個(gè)應(yīng)用,對(duì)比各種wifi的效果,有犧牲速度提尚質(zhì)量的,有犧牲質(zhì)量提尚速度的,有犧牲大小提尚性能的,各種wifi特點(diǎn)不一,但均必須受限無(wú)線環(huán)境不穩(wěn)定的傳輸質(zhì)量和相對(duì)有限環(huán)境更加弱小的硬件處理能力。
[0007]P2P的傳輸技術(shù)在網(wǎng)絡(luò)上已有多方面應(yīng)用且日趨成熟,最著名的如Bittorrent ;P2P的網(wǎng)絡(luò)應(yīng)用發(fā)展至今,已徹底弱化了傳統(tǒng)的服務(wù)器和客戶端的概念,將服務(wù)器和客戶端對(duì)等化為網(wǎng)絡(luò)節(jié)點(diǎn),節(jié)點(diǎn)之間可以相互交換資源。
[0008]由于現(xiàn)有的有線技術(shù)以有線網(wǎng)絡(luò)為基礎(chǔ),線路穩(wěn)定性、帶寬大,硬件有保障,通暢基于該環(huán)境設(shè)計(jì)的軟件基數(shù)大,不會(huì)考慮丟包率、報(bào)文大小、內(nèi)存容量、硬盤容量等問(wèn)題,但這些因素在無(wú)線環(huán)境中均會(huì)被放大,所以在軟件設(shè)計(jì)的時(shí)候需要提高容錯(cuò)率,減少報(bào)文大小,降低內(nèi)存消耗和磁盤消耗。
[0009]針對(duì)相關(guān)技術(shù)中的問(wèn)題,目前尚未提出有效的解決方案。
[0010]
【發(fā)明內(nèi)容】
[0011 ] 本發(fā)明的目的是提供一種基于AP的P2P傳輸方法和系統(tǒng),以克服目前現(xiàn)有技術(shù)存在的上述不足。
[0012]本發(fā)明的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
根據(jù)本發(fā)明的一方面,提供了一種基于AP的P2P傳輸方法,該基于AP的P2P傳輸方法包括以下步驟:
通過(guò)預(yù)先設(shè)置的服務(wù)器并采用預(yù)先配置的握手協(xié)議接收?qǐng)?bào)文,根據(jù)所述握手協(xié)議判斷報(bào)文的正確性;
在判斷結(jié)果為報(bào)文正確的情況下,所述服務(wù)器判斷自身狀態(tài);
在自身狀態(tài)為活躍的情況下,所述服務(wù)器根據(jù)所述報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件;
在不存在所述種子文件的情況下,發(fā)送預(yù)先設(shè)置的與種子文件相匹配的種子文件請(qǐng)求報(bào)文;
通過(guò)預(yù)先設(shè)置的服務(wù)器接收所述種子文件請(qǐng)求報(bào)文,并將所述種子文件報(bào)文存儲(chǔ)在預(yù)先設(shè)置的中間管道內(nèi);
讀取預(yù)先存儲(chǔ)在中間管道內(nèi)的信息并根據(jù)所述種子文件請(qǐng)求報(bào)文,查找與種子文件請(qǐng)求報(bào)文相匹配的種子文件;
在找到種子文件的情況下,將所述種子文件信息發(fā)送至管道;
所述管道接收所述種子文件,并向用戶端發(fā)送所述種子文件。
[0013]進(jìn)一步的,根據(jù)所述握手協(xié)議判斷報(bào)文的正確性還包括:
在判斷結(jié)果為報(bào)文錯(cuò)誤的情況下,所述服務(wù)器執(zhí)行預(yù)先存儲(chǔ)的釋放該報(bào)文請(qǐng)求的操作指令。
[0014]進(jìn)一步的,所述服務(wù)器判斷自身狀態(tài)還包括:
在自身狀態(tài)為不活躍的情況下,調(diào)用預(yù)先存儲(chǔ)的hash函數(shù)查找到預(yù)先存儲(chǔ)的且與所述報(bào)文相匹配的資源塊,根據(jù)所述資源塊和報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件。
[0015]進(jìn)一步的,所述服務(wù)器根據(jù)所述報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件還包括:
在存在所述種子文件的情況下,發(fā)送所述種子文件。
[0016]進(jìn)一步的,所述查找與種子文件請(qǐng)求報(bào)文相匹配的種子文件還包括:
在未找到種子文件的情況下,所述服務(wù)器自動(dòng)執(zhí)行預(yù)先存儲(chǔ)的釋放該報(bào)文請(qǐng)求的操作指令。
[0017]根據(jù)本發(fā)明的另一方面,提供了一種基于AP的P2P傳輸系統(tǒng),該基于AP的P2P傳輸系統(tǒng)包括:
接收?qǐng)?bào)文模塊,用于通過(guò)預(yù)先設(shè)置的服務(wù)器并采用預(yù)先配置的握手協(xié)議接收?qǐng)?bào)文,根據(jù)所述握手協(xié)議判斷報(bào)文的正確性;
狀態(tài)監(jiān)測(cè)模塊,用于在判斷結(jié)果為報(bào)文正確的情況下,所述服務(wù)器判斷自身狀態(tài);文件查找模塊,用于在自身狀態(tài)為活躍的情況下,所述服務(wù)器根據(jù)所述報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件; 請(qǐng)求報(bào)文發(fā)送模塊,用于在不存在所述種子文件的情況下,發(fā)送預(yù)先設(shè)置的與種子文件相匹配的種子文件請(qǐng)求報(bào)文;
接收存儲(chǔ)模塊,用于通過(guò)預(yù)先設(shè)置的服務(wù)器接收所述種子文件請(qǐng)求報(bào)文,并將所述種子文件報(bào)文存儲(chǔ)在預(yù)先設(shè)置的中間管道內(nèi);
文件讀取查找模塊,用于讀取預(yù)先存儲(chǔ)在中間管道內(nèi)的信息并根據(jù)所述種子文件請(qǐng)求報(bào)文,查找與種子文件請(qǐng)求報(bào)文相匹配的種子文件;
文件發(fā)送模塊,用于在找到種子文件的情況下,將所述種子文件信息發(fā)送至管道; 接收反饋模塊,用于所述管道接收所述種子文件,并向用戶端發(fā)送所述種子文件。
[0018]進(jìn)一步的,根據(jù)所述握手協(xié)議判斷報(bào)文的正確性還包括:
程序釋放模塊,用于在判斷結(jié)果為報(bào)文錯(cuò)誤的情況下,所述服務(wù)器執(zhí)行預(yù)先存儲(chǔ)的釋放該報(bào)文請(qǐng)求的操作指令。
[0019]進(jìn)一步的,所述服務(wù)器判斷自身狀態(tài)還包括:
函數(shù)調(diào)用模塊,用于在自身狀態(tài)為不活躍的情況下,調(diào)用預(yù)先存儲(chǔ)的hash函數(shù)查找到預(yù)先存儲(chǔ)的且與所述報(bào)文相匹配的資源塊,根據(jù)所述資源塊和報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件。
[0020]進(jìn)一步的,所述服務(wù)器根據(jù)所述報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件還包括:
文件發(fā)送子模塊,用于在存在所述種子文件的情況下,發(fā)送所述種子文件。
[0021]進(jìn)一步的,所述查找與種子文件請(qǐng)求報(bào)文相匹配的種子文件還包括:
釋放程序子模塊,用于在未找到種子文件的情況下,所述服務(wù)器自動(dòng)執(zhí)行預(yù)先存儲(chǔ)的釋放該報(bào)文請(qǐng)求的操作指令。
[0022]本發(fā)明的有益效果為:本發(fā)明通過(guò)采用管道傳輸技術(shù)、循環(huán)鏈表鄰居技術(shù)及事件驅(qū)動(dòng)的組合應(yīng)用方法,具有以下優(yōu)點(diǎn):
1、本發(fā)明可進(jìn)行多線程處理磁盤讀寫任務(wù)鏈,將單任務(wù)整合成多任務(wù),可集中處理大量磁盤讀寫任務(wù),分離磁盤1操作和socket傳輸操作,將磁盤讀寫時(shí)間與網(wǎng)絡(luò)傳輸時(shí)間并行化,設(shè)磁盤讀寫時(shí)間為m,網(wǎng)絡(luò)傳輸時(shí)間為n,則將原來(lái)的m+n變?yōu)閚 (m>n);
2、鄰居節(jié)點(diǎn)的管理方式為雙向鏈表結(jié)構(gòu),是單向鏈表查找效率的2倍,內(nèi)存增加為0(1)數(shù)量級(jí)。
[0023]
【附圖說(shuō)明】
[0024]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0025]圖1是根據(jù)本發(fā)明實(shí)施例所述的一種基于AP的P2P傳輸方法的P2P握手和文件傳輸?shù)牧鞒淌疽鈭D;
圖2是根據(jù)本發(fā)明實(shí)施例所述的一種基于AP的P2P傳輸方法的種子文件傳輸?shù)牧鞒淌疽鈭D; 圖3是根據(jù)本發(fā)明實(shí)施例所述的一種基于AP的P2P傳輸系統(tǒng)的結(jié)構(gòu)示意圖;
圖4是根據(jù)本發(fā)明實(shí)施例所述的一種基于AP的P2P傳輸方法的數(shù)據(jù)處理流程示意圖。
[0026]
【具體實(shí)施方式】
[0027]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028]如圖1-4所示,根據(jù)本發(fā)明實(shí)施例所述的根據(jù)本發(fā)明的一方面,提供了一種基于AP的P2P傳輸方法,該基于AP的P2P傳輸方法包括以下步驟:
通過(guò)預(yù)先設(shè)置的服務(wù)器并采用預(yù)先配置的握手協(xié)議接收?qǐng)?bào)文,根據(jù)所述握手協(xié)議判斷報(bào)文的正確性;
在判斷結(jié)果為報(bào)文正確的情況下,所述服務(wù)器判斷自身狀態(tài);
在自身狀態(tài)為活躍的情況下,所述服務(wù)器根據(jù)所述報(bào)文信息判斷是否存在預(yù)先存儲(chǔ)的與所述報(bào)文信息相匹配的種子文件;
在不存在所述種子文件的情況下,發(fā)送預(yù)先設(shè)置的與種子文件相匹配的種子文件請(qǐng)求報(bào)文;
通過(guò)預(yù)先設(shè)置的服務(wù)器接收所述種子文件請(qǐng)求報(bào)文,并將所述種子文件報(bào)文存儲(chǔ)在預(yù)先設(shè)置的中間管道內(nèi);
讀取預(yù)先存儲(chǔ)在中間管道內(nèi)的信息并根據(jù)所述種子文件請(qǐng)求報(bào)文,查找與種子文件請(qǐng)求報(bào)文相匹配的種子文件;
在找到種子文件的情況下,將所述種子文件信息發(fā)送至管道;
所述管道接收所述種子文件,并向用戶端發(fā)送所述種子文件。
[0029]根據(jù)所述握手協(xié)議判斷報(bào)文的正確性還包括:
在判斷結(jié)果為報(bào)文錯(cuò)誤的情況下,所述服務(wù)器執(zhí)行預(yù)先存儲(chǔ)的釋放該報(bào)文請(qǐng)求的