專利名稱:優(yōu)化客戶端連接下載的方法
技術(shù)領(lǐng)域:
本發(fā)明提供一種優(yōu)化客戶端連接下載的方法。
技術(shù)背景隨著P2P技術(shù)的流行,網(wǎng)絡(luò)上出現(xiàn)了許多使用P2P架構(gòu)的應(yīng)用軟件。最為常見的幾類軟 件包括網(wǎng)絡(luò)視頻軟件、文件共享軟件、網(wǎng)絡(luò)聊天軟件。其中BT等文件共享軟件占用了 40% 70% 的網(wǎng)絡(luò)帶寬,成為了網(wǎng)絡(luò)中重要的應(yīng)用。為了獲得較高的發(fā)現(xiàn)效率,現(xiàn)在的P2P結(jié)構(gòu)(如BT)多采用中心化拓?fù)錇橹黧w,全分布 式結(jié)構(gòu)化拓?fù)?DHT方式)為補(bǔ)充的結(jié)構(gòu)。此類方案存在一些缺點(diǎn)服務(wù)器采用隨機(jī)的方式返 回存儲(chǔ)的客戶端列表,客戶端之間不能形成最優(yōu)的網(wǎng)絡(luò)??赡艹霈F(xiàn)客戶端與相距較遠(yuǎn)的客戶 端建立連接,而相距很近的客戶端卻未能被其發(fā)現(xiàn),從而影響整體網(wǎng)絡(luò)的交換效率。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種優(yōu)化客戶端連接下載的方法; 為達(dá)上述目的,本發(fā)明采用如下技術(shù)方案一種優(yōu)化客戶端連接下載的方法,服務(wù)器中保存有客戶端列表,其特征在于包括以下步驟A、 客戶端向所述服務(wù)器發(fā)送請(qǐng)求消息,所述服務(wù)器接收該請(qǐng)求消息,生成返回列表;B、 所述服務(wù)器將與該請(qǐng)求的客戶端具有相同網(wǎng)段的客戶端加入該返回列表;C、 當(dāng)所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),將其它的客戶端加入所 述返回列表中;D、 所述服務(wù)器將返回列表發(fā)送至該請(qǐng)求的客戶端,所述請(qǐng)求的客戶端與該返回列表中的 客戶端建立連接。作為本發(fā)明的一種改進(jìn),在執(zhí)行所述步驟B之后,所述返回列表中的客戶端數(shù)量不能滿 足要求的返回?cái)?shù)量時(shí),在所述步驟C之前,還包括以下步驟E、 將與所述請(qǐng)求的客戶端物理位置相鄰的客戶端信息加入該返回列表。 作為本發(fā)明的又一改進(jìn),在執(zhí)行所述步驟E之后,所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),在所述步驟C之前,還包括以下步驟F、 返回與該請(qǐng)求的客戶端加入時(shí)間最近的客戶端信息加入該返回列表。 作為本發(fā)明的一種優(yōu)選方式,所述步驟C中采用隨機(jī)的方式選擇客戶端列表中的客戶端信息加入該返回列表中。作為本發(fā)明的再一改進(jìn),在所述步驟A之后所述步驟B之前,還包括以下步驟G、 所述服務(wù)器判斷存儲(chǔ)在客戶端列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量,如時(shí)是, 則執(zhí)行步驟B,否則將所述客戶端列表中的全部客戶端信息加入返回列表中,執(zhí)行步驟 D。作為本發(fā)明的再一改進(jìn),在所述步驟D之后,還包括下列下載優(yōu)化步驟 步驟20、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T內(nèi)與其連接的每個(gè)客戶端為自己提 供數(shù)據(jù)下載的速率;步驟21、所述請(qǐng)求的客戶端保持N個(gè)為自己提供數(shù)據(jù)下載速度最快的連接,阻塞其它的 連接;步驟22、所述請(qǐng)求的客戶端隨機(jī)選擇開啟M個(gè)已經(jīng)被阻塞的連接;步驟23、所述請(qǐng)求的客戶端判斷自己的數(shù)據(jù)下載是否完成,如果是,則轉(zhuǎn)步驟25,否則 進(jìn)入步驟24;步驟24、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間T,如果是則轉(zhuǎn)步驟20,否則重復(fù)執(zhí)行 步驟24;步驟25、結(jié)束數(shù)據(jù)下載。作為本發(fā)明的再一改進(jìn),所述請(qǐng)求的客戶端如果在某一段時(shí)間內(nèi),所有的下載連接都被 與之連接的客戶端阻塞后,所述請(qǐng)求的客戶端立刻發(fā)起一個(gè)或多個(gè)新的連接。 作為本發(fā)明的再一改進(jìn),在所述步驟D之后,還包括下列下載優(yōu)化步驟 步驟30、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T1內(nèi)為與其連接的每個(gè)客戶端(Peer) 提供數(shù)據(jù)上傳的速率;步驟31、所述請(qǐng)求的客戶端保持其提供上傳速率最快N1個(gè)連接,阻塞其它的連接; 步驟32、所述請(qǐng)求的客戶端隨機(jī)選擇開啟Ml個(gè)已經(jīng)被阻塞的連接; 步驟33、所述請(qǐng)求的客戶端判斷是否滿足強(qiáng)迫上傳條件,如果是,則轉(zhuǎn)步驟35,否則進(jìn) 入步驟34;步驟34、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間T1,如果是,則轉(zhuǎn)步驟30,否則,重復(fù) 執(zhí)行步驟34;步驟35、結(jié)束數(shù)據(jù)上傳。 作為本發(fā)明的再一種改進(jìn),所述請(qǐng)求的客戶端如果在某一段時(shí)間內(nèi),所有由其提供上傳的連接都被與之連接的客戶端阻塞后,所述請(qǐng)求的客戶端立刻發(fā)起一個(gè)或多個(gè)新的連接。 作為本發(fā)明的又一種優(yōu)選方式,所述強(qiáng)迫上傳條件為上傳的時(shí)間或上傳的數(shù)據(jù)量。 本發(fā)明較好地解決了所述請(qǐng)求的客戶端與客戶端(Peer)之間的發(fā)現(xiàn)和連接,并通過改進(jìn)數(shù)據(jù)的下載和上傳,實(shí)現(xiàn)連接的均衡。充分了利用網(wǎng)絡(luò)中的可用資源,提高了整體網(wǎng)絡(luò)的交換效率。
圖1為本發(fā)明實(shí)施例一的流程圖; 圖2為本發(fā)明實(shí)施例二的流程圖; 圖3為本發(fā)明實(shí)施例三中強(qiáng)迫上傳步驟流程圖。
具體實(shí)施方式
實(shí)施例一如圖1所示, 一種優(yōu)化客戶端連接下載的方法,服務(wù)器保存有客戶端列表如列表結(jié)構(gòu)為 ((M4-20-2-226d6c299670, 192.168.6.73, 6881),……),列表中各個(gè)字段的含義分別為 (客戶ID、客戶IP地址,客戶端口)。包括以下步驟步驟10、客戶端向所述服務(wù)器發(fā)送請(qǐng)求消息,所述服務(wù)器接收該請(qǐng)求消息,并對(duì)該客戶 端的IP地址進(jìn)行解析,分析客戶端的IP地址,對(duì)保存的客戶端列表進(jìn)行修改;生成返回客戶端地址和端口的列表,即返回客戶列表,其結(jié)構(gòu)可以是((IP地址,客戶端口), (IP地址,客戶端口),……);步驟11、所述服務(wù)器判斷存儲(chǔ)在客戶端列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量, 如時(shí)是,則執(zhí)行步驟12,否則,將所述服務(wù)器客戶端列表中的所有客戶端信息加入所述返回 列表中,執(zhí)行步驟19;步驟12、所述服務(wù)器將與該請(qǐng)求的客戶端具有相同網(wǎng)段的客戶端信息加入該返回列表中; 步驟13、所述服務(wù)器判斷所述返回列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量,如果 是,則轉(zhuǎn)步驟19,否則,進(jìn)入步驟14;步驟14、所述服務(wù)器將與所述請(qǐng)求的客戶端物理位置相鄰的客戶端信息加入返回列表((IP地址,客戶端口),……)中;物理位置相鄰指的是兩個(gè)客戶端同屬于一個(gè)城市、 一個(gè)省份或者一個(gè)國家。步驟15、所述服務(wù)器判斷所述返回列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量,如果 是,則轉(zhuǎn)步驟19,否則,進(jìn)入步驟16;步驟16、所述服務(wù)器將與該請(qǐng)求的客戶端加入時(shí)間最近的客戶端(Peer)的信息加入所 述返回列表((IP地址,客戶端口),……)中;步驟17、所述服務(wù)器判斷所述返回列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量,如果 是,則轉(zhuǎn)歩驟19,否則,進(jìn)入步驟18;步驟18、所述服務(wù)器采用隨機(jī)的方式將其保存的客戶端列表中的客戶端信息加入該返回 列表中;步驟19、所述服務(wù)器將所述返回列表發(fā)送給所述請(qǐng)求的客戶端,所述請(qǐng)求的客戶端收到所述返回列表后,與所述返回列表中的客戶端(Peer)建立連接,以下載或上傳輸數(shù)據(jù)。 實(shí)施例二一種優(yōu)化客戶端連接下載的方法,客戶端之間建立連接的過程與實(shí)施例一中的流程相同, 因此省略對(duì)該部分的重復(fù)描述。在實(shí)施例一的歩驟19之后,在所述請(qǐng)求的客戶端進(jìn)行數(shù)據(jù)下載時(shí),還包括如圖2所示的 下載優(yōu)化步驟-步驟20、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T內(nèi)與其連接的每個(gè)客戶端(Peer) 為自己提洪數(shù)據(jù)下載的速率;步驟21、所述請(qǐng)求的客戶端保持N個(gè)為自己提供數(shù)據(jù)下載速度最快的連接,阻塞其它的 連接。其中,N小于所述客戶端(Peer)總數(shù)。歩驟22、所述請(qǐng)求的客戶端隨機(jī)選擇開啟M個(gè)已經(jīng)被阻塞的連接。其中,M加上N的值 小于所述客戶端(Peer)總數(shù)。隨機(jī)選擇的連接不以現(xiàn)有的下載速度為條件。通過隨機(jī)選擇, 可保證所述請(qǐng)求的客戶端從上傳速率低的客戶端(Peer)處獲得下載數(shù)據(jù)的機(jī)會(huì)。歩驟23、所述請(qǐng)求的客戶端判斷自己的數(shù)據(jù)下載是否完成,如果是,則轉(zhuǎn)步驟25,否則 進(jìn)入歩驟24;步驟24、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間T,如果是則轉(zhuǎn)步驟20,否則重復(fù)執(zhí)行 步驟24;歩驟25、結(jié)束數(shù)據(jù)下載。 實(shí)施例三一種優(yōu)化客戶端連接下載的方法,客戶端之間建立連接的過程與實(shí)施例一中的流程相同,并且在數(shù)據(jù)傳輸過程中,下載優(yōu)化步驟與實(shí)施例二中的流程相同,因此省略對(duì)該部分的重復(fù)描述o在實(shí)施例一的步驟19之后,執(zhí)行實(shí)施例二中的下載分成等級(jí)步驟的同時(shí),還進(jìn)行一強(qiáng)迫 上傳歩驟,所述請(qǐng)求的客戶端強(qiáng)迫遵守某一上傳條件,例如必需滿足上傳的時(shí)間或上傳的數(shù) 據(jù)量,且所述請(qǐng)求的客戶端無法控制上傳速率。在所述請(qǐng)求的客戶端滿足該上傳條件后,才 能斷開與各個(gè)所述客戶端(Peer)的連接(網(wǎng)絡(luò)掉線或斷電等意外情況除外)。該上傳條件可 以由所述服務(wù)器在發(fā)送所述返回列表至所述請(qǐng)求的客戶端時(shí)一并發(fā)送,即由服務(wù)器設(shè)定,也 可以由所述請(qǐng)求的客戶端運(yùn)行的相關(guān)程序中設(shè)定。該強(qiáng)迫上傳步驟如圖3所示,具體采用以 下歩驟實(shí)現(xiàn)-步驟30、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T1內(nèi)為與其連接的每個(gè)客戶端(Peer) 提供數(shù)據(jù)上傳的速率;步驟31、所述請(qǐng)求的客戶端保持其提供上傳速率最快N1個(gè)連接,阻塞其它的連接。其中, Nl小于所述客戶端(Peer)總數(shù)。步驟32、所述請(qǐng)求的客戶端隨機(jī)選擇開啟M1個(gè)己經(jīng)被阻塞的連接。其中,M1加上N1的 值小于所述客戶端(Peer)總數(shù)。通過隨機(jī)選擇,可保證所述請(qǐng)求的客戶端有機(jī)會(huì)為上傳速 率低的客戶端(Peer)提供數(shù)據(jù)上傳。步驟33、所述請(qǐng)求的客戶端判斷是否滿足強(qiáng)迫上傳條件,如果是,則轉(zhuǎn)步驟35,否則進(jìn) 入歩驟34;步驟34、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間T1,如果是,則轉(zhuǎn)步驟30,否則,重復(fù)執(zhí)行34歩驟;步驟35、結(jié)束數(shù)據(jù)上傳。上述實(shí)施例一和實(shí)施例二中,所述請(qǐng)求的客戶端或任一,如果在某一段時(shí)間T2內(nèi),所有 的下載或上傳連接都被連接的客戶端(Peer)阻塞后,該所述請(qǐng)求的客戶端立刻發(fā)起N2個(gè)新 的連接。以嘗試維持現(xiàn)有的數(shù)據(jù)下載或上傳。其中,N2大于等于1小于所述客戶端(Peer) 總數(shù)。本發(fā)明較好地解決了所述請(qǐng)求的客戶端與客戶端(Peer)之間的發(fā)現(xiàn)和連接,并通過改進(jìn) 數(shù)據(jù)的下載和上傳,實(shí)現(xiàn)連接的均衡。充分了利用網(wǎng)絡(luò)中的可用資源,提高了整體網(wǎng)絡(luò)的交換效率。
權(quán)利要求
1、優(yōu)化客戶端連接下載的方法,服務(wù)器中保存有客戶端列表,其特征在于包括以下步驟A、客戶端向所述服務(wù)器發(fā)送請(qǐng)求消息,所述服務(wù)器接收該請(qǐng)求消息,生成返回列表;B、所述服務(wù)器將與該請(qǐng)求的客戶端具有相同網(wǎng)段的客戶端加入該返回列表;C、當(dāng)所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),將其它的客戶端加入所述返回列表中;D、所述服務(wù)器將返回列表發(fā)送至該請(qǐng)求的客戶端,所述請(qǐng)求的客戶端與該返回列表中的客戶端建立連接。
2、 根據(jù)權(quán)利要求1所述的優(yōu)化客戶端連接下載的方法,其特征在于在執(zhí)行所述步驟B之后, 所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),在所述步驟C之前,還包括以 下步驟E、 將與所述請(qǐng)求的客戶端物理位置相鄰的客戶端信息加入該返回列表。
3、 根據(jù)權(quán)利要求2所述的優(yōu)化客戶端連接下載的方法,其特征在于在執(zhí)行所述步驟E之后,所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),在所述步驟c之前,還包括以下步驟F、 返回與該請(qǐng)求的客戶端加入時(shí)間最近的客戶端信息加入該返回列表。
4、 根據(jù)權(quán)利要求1所述的優(yōu)化客戶端連接下載的方法,其特征在于所述步驟C中采用隨機(jī) 的方式選擇客戶端列表中的客戶端信息加入該返回列表中。
5、 根據(jù)權(quán)利要求l所述的優(yōu)化客戶端連接下載的方法,其特征在于在所述步驟A之后所述 步驟B之前,還包括以下步驟G、 所述服務(wù)器判斷存儲(chǔ)在客戶端列表中的客戶端數(shù)量是否滿足要求的返回?cái)?shù)量,如時(shí)是, 則執(zhí)行步驟B,否則將所述客戶端列表中的全部客戶端信息加入返回列表中,執(zhí)行步驟 D。
6、 根據(jù)權(quán)利要求1至5中任一所述的優(yōu)化客戶端連接下載的方法,其特征在于在所述步驟 D之后,還包括下列下載優(yōu)化步驟步驟20、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T內(nèi)與其連接的每個(gè)客戶端為自己提供 數(shù)據(jù)下載的速率;步驟21、所述請(qǐng)求的客戶端保持N個(gè)為自己提供數(shù)據(jù)下載速度最快的連接,阻塞其它的連 接;步驟22、所述請(qǐng)求的客戶端隨機(jī)選擇開啟M個(gè)己經(jīng)被阻塞的連接;步驟23、所述請(qǐng)求的客戶端判斷自己的數(shù)據(jù)下載是否完成,如果是,則轉(zhuǎn)步驟25,否則進(jìn)入步驟24;步驟24、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間T,如果是則轉(zhuǎn)步驟20,否則重復(fù)執(zhí)行步驟24; 步驟25、結(jié)束數(shù)據(jù)下載。
7、 根據(jù)權(quán)利要求6所述的優(yōu)化客戶端連接下載的方法,其特征在于所述請(qǐng)求的客戶端如果 在某一段時(shí)間內(nèi),所有的下載連接都被與之連接的客戶端阻塞后,所述請(qǐng)求的客戶端立刻 發(fā)起一個(gè)或多個(gè)新的連接。
8、 根據(jù)權(quán)利要求1至5中任一所述的優(yōu)化客戶端連接下載的方法,其特征在于在所述步驟D之后,還包括下列下載優(yōu)化步驟步驟30、所述請(qǐng)求的客戶端定時(shí)計(jì)算在某一時(shí)間段T1內(nèi)為與其連接的每個(gè)客戶端(Peer)提供數(shù)據(jù)上傳的速率; 步驟31、所述請(qǐng)求的客戶端保持其提供上傳速率最快N1個(gè)連接,阻塞其它的連接; 步驟32、所述請(qǐng)求的客戶端隨機(jī)選擇開啟Ml個(gè)已經(jīng)被阻塞的連接;步驟33、所述請(qǐng)求的客戶端判斷是否滿足強(qiáng)迫上傳條件,如果是,則轉(zhuǎn)步驟35,否則進(jìn) 入步驟34;步驟34、所述請(qǐng)求的客戶端是否達(dá)到規(guī)定的時(shí)間Tl,如果是,則轉(zhuǎn)步驟30,否則,重復(fù)執(zhí)行步驟34; 步驟35、結(jié)束數(shù)據(jù)上傳。
9、 根據(jù)權(quán)利要求8所述的優(yōu)化客戶端連接下載的方法,其特征在于所述請(qǐng)求的客戶端如果 在某一段時(shí)間內(nèi),所有由其提供上傳的連接都被與之連接的客戶端阻塞后,所述請(qǐng)求的客 戶端立刻發(fā)起一個(gè)或多個(gè)新的連接。
10、根據(jù)權(quán)利要求8所述的優(yōu)化客戶端連接下載的方法,其特征在于所述強(qiáng)迫上傳條件為上 傳的時(shí)間或上傳的數(shù)據(jù)量。
全文摘要
本發(fā)明提供一種優(yōu)化客戶端連接下載的方法,服務(wù)器中保存有客戶端列表,其特征在于包括以下步驟客戶端向所述服務(wù)器發(fā)送請(qǐng)求消息,所述服務(wù)器接收該請(qǐng)求消息,生成返回列表;所述服務(wù)器將與該請(qǐng)求的客戶端具有相同網(wǎng)段的客戶端加入該返回列表;當(dāng)所述返回列表中的客戶端數(shù)量不能滿足要求的返回?cái)?shù)量時(shí),將其它的客戶端加入所述返回列表中;所述服務(wù)器將返回列表發(fā)送至該請(qǐng)求的客戶端,所述請(qǐng)求的客戶端與該返回列表中的客戶端建立連接。本發(fā)明較好地解決了所述請(qǐng)求的客戶端與客戶端(Peer)之間的發(fā)現(xiàn)和連接,并通過改進(jìn)數(shù)據(jù)的下載和上傳,實(shí)現(xiàn)連接的均衡。充分利用了網(wǎng)絡(luò)中的可用資源,提高了整體網(wǎng)絡(luò)的交換效率。
文檔編號(hào)H04L29/06GK101325579SQ20071004185
公開日2008年12月17日 申請(qǐng)日期2007年6月11日 優(yōu)先權(quán)日2007年6月11日
發(fā)明者吳言華, 熙 彭, 曹建紅 申請(qǐng)人:上海未來寬帶技術(shù)及應(yīng)用工程研究中心有限公司