中文字幕无码日韩视频无码三区

下載數據的調度方法及裝置的制造方法

文檔序號:10515637閱讀:471來源:國知局
下載數據的調度方法及裝置的制造方法
【專利摘要】本發明實施例提供一種下載數據的調度方法及裝置,涉及數據處理領域,解決了現有技術中不同客戶端在點播或直播同一資源時的數據利用率低的問題。本發明實施例的方法包括:當客戶端與對端下載同一數據時,獲取對端的數據下載情況;根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊;若判斷結果為是,則從對端中獲取自身未下載的數據塊;若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。本發明實施例能夠提高不同客戶端在點播或直播同一資源時的數據利用率,避免不同客戶端在點播或直播同一資源時無法相互進行更多的數據交互。
【專利說明】
下載數據的調度方法及裝置
技術領域
[0001]本發明實施例涉及數據處理領域,尤其涉及一種下載數據的調度方法及裝置。
【背景技術】
[0002]在生活中人們需要從網絡上下載各種數據,傳統的http下載是從服務器上直接復制數據給客戶端,這種數據傳輸的快慢受帶寬的限制,當一臺服務器上連接了過多的客戶端后,每個客戶端都會占用服務器一定的帶寬資源,服務器上連接的客戶端越多,客戶端下載數據的速度就越慢。
[0003]為了解決上述問題,現有技術中出現了點對點技術的(peer to peer,簡稱P2P)下載方式,一個客戶端就相當于一個peer。在P2P網絡環境中,大量彼此連接的客戶端都處于對等的地位,整個網絡通常不依賴于一個服務器,P2P網絡中的每一臺客戶端既能充當網絡服務的請求者,又對其他客戶端的請求作出響應,提供資源和服務。P2P軟件通常將文件分成若干塊進行下載,通常在針對點播或直播進行P2P下載時,與下載其他普通文件不同的是,為了保證播放數據的流暢性,需要按照數據塊的順序進行順次下載。此時,當多臺客戶端對同一頻道或節目進行播放時,若都按照相同的順序下載數據塊,那么一臺客戶端無法從另一臺客戶端中獲取到自身沒有的數據,則兩臺客戶端之間就無法進行更多的數據交互,必須都從服務器獲取數據。這樣的話對于下載同一資源的兩臺客戶端而言,它們之間的數據利用率就會大大下降。因此,如何提高不同客戶端在點播或直播同一資源時的數據利用率成為使用P2P下載過程中亟待解決的問題。

【發明內容】

[0004]本發明實施例提供一種下載數據的調度方法及裝置,用以解決現有技術中不同客戶端在點播或直播同一資源時的數據利用率低的問題。
[0005]本發明實施例提供一種下載數據的調度方法,包括:
[0006]當客戶端與對端下載同一數據時,獲取對端的數據下載情況;
[0007]根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊;
[0008]若判斷結果為是,則從對端中獲取自身未下載的數據塊;
[0009]若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0010]進一步的,所述獲取對端的數據下載情況包括:
[0011]獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況。
[0012]進一步的,根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊包括:
[0013]從對端的位示圖中查找自身未下載的數據塊。
[0014]進一步的,所述若判斷結果為是,則從對端中獲取自身未下載的數據塊包括:
[0015]若從對端的位示圖中查找到自身未下載的數據塊,則從對端中獲取自身未下載的數據塊。
[0016]進一步的,所述若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊從服務器進行下載包括:
[0017]若從對端的位示圖中查找不到自身未下載的數據塊,則停止原先的順序下載,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0018]本發明實施例提供一種下載數據的調度裝置,包括:
[0019]獲取單元,用于當客戶端與對端下載同一數據時,獲取對端的數據下載情況;
[0020]判斷單元,用于根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊;
[0021]所述獲取單元用于當所述判斷單元的判斷結果為是時,從對端中獲取自身未下載的數據塊;
[0022]選擇單元,用于當所述判斷單元的判斷結果為否時,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0023]進一步的,所述獲取單元用于獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況。
[0024]進一步的,所述判斷單元用于從對端的位示圖中查找自身未下載的數據塊。
[0025]進一步的,所述獲取單元用于當所述判斷單元從對端的位示圖中查找到自身未下載的數據塊時,從對端中獲取自身未下載的數據塊。
[0026]進一步的,所述獲取單元用于當所述判斷單元從對端的位示圖中查找不到自身未下載的數據塊時,停止原先的順序下載,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0027]本發明實施例提供的下載數據的調度方法及裝置,當客戶端與對端下載同一數據時,能夠由客戶端獲取對端的數據下載情況,根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊,若判斷結果為是,則從對端中獲取自身未下載的數據塊;若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。而在現有技術中,通常在針對點播或直播進行P2P下載時,為了保證播放數據的流暢性,需要按照數據塊的順序進行順次下載。若多臺客戶端對同一頻道或節目進行播放時,都按照相同的順序下載數據塊,那么一臺客戶端就無法從另一臺客戶端中獲取到自身沒有的數據快,則兩臺客戶端之間就無法進行更多的數據交互,必須都從服務器獲取數據。因此與現有技術中在對點播或直播數據進行下載時的數據獲取效率較低的缺陷相比,本發明實施例能夠使得多臺客戶端分別下載對端不具有的數據塊,從而當其他客戶端需要某個數據塊時能夠不從服務器下載而直接從對端獲取,大大提高了客戶端之間的數據交互,提高了數據下載的效率。
【附圖說明】
[0028]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0029]圖1為本發明實施例提供的一種下載數據的調度方法的流程圖;
[0030]圖2為本發明實施例提供的一種下載數據的調度裝置的組成框圖;[0031 ]圖3為本發明實施例提供的一種服務器的結構示意圖。
【具體實施方式】
[0032]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0033]P2P軟件通常將文件分成若干塊進行下載,在針對點播或直播進行P2P下載時,為了保證播放數據的流暢性,需要按照數據塊的順序進行順次下載。此時,當多臺客戶端對同一頻道或節目進行播放時,若都按照相同的順序下載數據塊,那么一臺客戶端無法從另一臺客戶端中獲取到自身沒有的數據,則兩臺客戶端之間就無法進行更多的數據交互,必須都從服務器獲取數據。這樣的話對于下載同一資源的兩臺客戶端而言,它們之間的數據利用率就會大大下降。
[0034]為了解決上述問題,本發明實施例提供一種下載數據的調度方法,如圖1所示,所述方法包括:
[0035]101、當客戶端與對端下載同一數據時,獲取對端的數據下載情況。
[0036]在P2P網絡環境中,P2P軟件將完整數據分成若干個數據塊分別進行下載。當多臺客戶端下載同一數據時,這些客戶端之間建立了數據交互連系,當一臺客戶端需要下載數據時可以先從其他客戶端獲取自身未下載的數據塊,若其他客戶端都不存在自身未下載的數據塊時客戶端才會從服務器下載數據塊。因此,在本發明實施例提供的下載數據的調度方法中,當客戶端與對端下載同一數據時,首先需要客戶端獲取對端的數據下載情況。
[0037]102、根據數據下載情況判斷對端中是否包含自身未下載的數據塊。
[0038]當客戶端在步驟101中獲取到對端的數據下載情況之后,就需要根據對端的數據下載情況判斷對端中是否包含自身未下載的數據塊,從而根據判斷結果確定自身后續下載數據塊的方式。
[0039]103、若判斷結果為是,則從對端中獲取自身未下載的數據塊。
[0040]當在步驟102中判斷對端中包含自身未下載的數據塊時,客戶端就可以直接從對端中獲取未下載的數據塊,而不用從服務器獲取未下載的數據塊,從而可以不經過中繼設備直接進行數據交互,并且不受服務器連接的客戶端數量的影響,提高了客戶端下載數據的效率。
[0041]104、若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0042]當在步驟102中判斷對端中沒有包含自身未下載的數據塊時,客戶端就可以從自身未下載的數據塊中隨機選擇一個數據塊進行下載,從而使得對端在下載客戶端隨機選擇的數據塊時,能夠直接從所述客戶端獲取該數據塊。這種方式對于多臺客戶端在點播或直播同一個視頻資源時尤為重要,由于客戶端在使用P2P點播或直播視頻時,為了保證視頻播放的流暢性,需要按照數據塊的順序進行順次下載,若多臺客戶端點播或直播同一個視頻時,它們都按照順序獲取數據塊,則在它們之間很難存在差異的下載數據塊,即一臺客戶端下載了某些數據塊,其他客戶端也通常下載了同樣的數據塊,或者一臺客戶端從服務器下載某些數據,同時其他客戶端由于無法從對端獲取同樣的數據,就只能從服務器獲取這些數據,這樣就會造成客戶端節點之間出現數據塊碰撞的問題,導致一臺客戶端就無法從另一臺客戶端中獲取到自身沒有的數據,從而造成客戶端之間無法進行更多的數據交互,必須都從服務器獲取數據。而通過本發明實施例由客戶端在對端中未發現自身未下載的數據塊之后,打破原有的按照順序下載數據塊的方式,從自身未下載的數據塊中隨機選擇一個數據塊進行下載,使得對端在下載所述隨機選擇的數據塊時能夠直接從該客戶端獲取該數據塊。當更多的客戶端在點播或直播同一個視頻資源時按照本發明實施例的方法進行處理,就會大大提高客戶端獲取視頻的效率,提高客戶端之間數據的利用率。
[0043]本發明實施例提供的下載數據的調度方法,當客戶端與對端下載同一數據時,能夠由客戶端獲取對端的數據下載情況,根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊,若判斷結果為是,則從對端中獲取自身未下載的數據塊;若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。而在現有技術中,通常在針對點播或直播進行P2P下載時,為了保證播放數據的流暢性,需要按照數據塊的順序進行順次下載。若多臺客戶端對同一頻道或節目進行播放時,都按照相同的順序下載數據塊,那么一臺客戶端就無法從另一臺客戶端中獲取到自身沒有的數據快,則兩臺客戶端之間就無法進行更多的數據交互,必須都從服務器獲取數據。因此與現有技術中在對點播或直播數據進行下載時的數據獲取效率較低的缺陷相比,本發明實施例能夠使得多臺客戶端分別下載對端不具有的數據塊,從而當其他客戶端需要某個數據塊時能夠不從服務器下載而直接從對端獲取,大大提高了客戶端之間的數據交互,提高了數據下載的效率。
[0044]為了更好的對上述圖1所示的方法進行理解,作為對上述實施方式的細化和擴展,本發明實施例將以兩臺客戶端(一臺稱為客戶端另一臺稱為對端)進行點播或直播時下載數據為例,對上述圖1中的各個步驟進行詳細說明。
[0045]當客戶端與對端下載同一數據時,客戶端需要獲取對端的數據下載情況,根據對端中的數據下載情況確定自身需要通過何種方式獲取未下載數據。在獲取對端的數據下載情況時,客戶端可以通過記錄有節點信息的中心服務器獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況,例如可以利用二進制的一位來表示完整數據中一個數據塊的下載情況,當其值為“O”時,表示所述數據塊未下載,當其值為“Γ時,表示所述數據塊已下載,根據位示圖的數值就可以獲取到哪些數據塊被下載哪些數據塊未被下載。所述中心服務器并不保存需要下載的數據,只是由客戶端節點負責發布數據信息,讓中心服務器知道它們想共享什么數據,讓需要它的其他客戶端節點下載其可共享的數據資源。
[0046]在P2P網絡環境中,P2P軟件將完整數據分成若干個數據塊分別進行下載,并且當P2P下載環境中多臺客戶端下載同一個數據時,各個客戶端都會將所述數據分成相同的數據塊進行下載并記錄自身的數據下載情況。在本發明實施例中,當客戶端從對端中獲取到對端以位示圖表示的數據下載情況之后,就需要根據對端的位示圖判斷對端中是否存在自身未下載的數據塊。具體的,就是根據位示圖中記錄的各個數據塊的數值確定哪些數據塊被下載哪些數據塊未被下載。由于客戶端與對端的數據塊的個數相同,因此客戶端可以根據對端的數據塊下載情況確定其中是否存在自身未下載數據塊。
[0047]例如客戶端的位示圖記錄的代表8個數據塊的下載情況的數值為11000000,對端的位示圖記錄的代表8個數據塊的下載情況的數值也為11100000,當客戶端開始下載第三個數據塊時,發現對端中第三個數據塊的數值為I,說明對端中包含自身未下載的數據塊,則客戶端可以直接從對端中獲取第三個數據塊,而不必從服務器獲取第三個數據塊,從而提尚數據塊的下載效率。
[0048]當客戶端開始下載第四個數據塊時,發現對端位示圖中第四個數據塊的數值為0,則說明對端中未包含自身未下載的數據塊,則客戶端在保證自身播放正常的情況下,不以原有方式繼續按順序下載第四個數據塊,而是隨機從未下載的數據塊中選擇一個數據塊(例如第七個數據塊)進行下載。當所述客戶端第七個數據塊下載完成后,對端第四個數據塊也可能會下載完成,從而使得客戶端在下載第四個數據塊時能夠從對端中直接獲取,并且對端在下載第七個數據塊時能夠從客戶端中直接獲取。客戶端通過隨機下載未下載數據塊,打破原有的按照數據塊順序進行下載的方式,使多臺客戶端在播放同一個資源時不再同步下載,從而不會出現客戶端之間找不到差異下載數據導致各個客戶端無法直接進行數據交互的情況發生。
[0049]當同時進行點播或直播的客戶端越多,各個客戶端都按照本發明實施例的方法不以數據塊的順序隨機下載未下載數據時,就越能夠使得客戶端之間最大程度的從對端中獲取到自身未下載的數據塊,而不用從服務器下載,避免了各個客戶端按照數據塊順序下載數據時導致客戶端無法從其他客戶端獲取數據的缺陷。
[0050]作為對上述圖1所示方法的應用,本發明實施例提供了一種下載數據的調度裝置,如圖2所示,所述裝置包括:獲取單元21、判斷單元22以及選擇單元23,其中,
[0051]獲取單元21,用于當客戶端與對端下載同一數據時,獲取對端的數據下載情況;
[0052]判斷單元22,用于根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊;
[0053]獲取單元21用于當判斷單元22的判斷結果為是時,從對端中獲取自身未下載的數據塊;
[0054]選擇單元23,用于當判斷單元22的判斷結果為否時,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0055]進一步的,獲取單元21用于獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況。
[0056]進一步的,判斷單元22用于從對端的位示圖中查找自身未下載的數據塊。
[0057]進一步的,獲取單元21用于當判斷單元22從對端的位示圖中查找到自身未下載的數據塊時,從對端中獲取自身未下載的數據塊。
[0058]進一步的,獲取單元21用于當判斷單元22從對端的位示圖中查找不到自身未下載的數據塊時,停止原先的順序下載,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
[0059]本發明實施例提供的下載數據的調度裝置,當客戶端與對端下載同一數據時,能夠由客戶端獲取對端的數據下載情況,根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊,若判斷結果為是,則從對端中獲取自身未下載的數據塊;若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。而在現有技術中,通常在針對點播或直播進行P2P下載時,為了保證播放數據的流暢性,需要按照數據塊的順序進行順次下載。若多臺客戶端對同一頻道或節目進行播放時,都按照相同的順序下載數據塊,那么一臺客戶端就無法從另一臺客戶端中獲取到自身沒有的數據快,則兩臺客戶端之間就無法進行更多的數據交互,必須都從服務器獲取數據。因此與現有技術中在對點播或直播數據進行下載時的數據獲取效率較低的缺陷相比,本發明實施例能夠使得多臺客戶端分別下載對端不具有的數據塊,從而當其他客戶端需要某個數據塊時能夠不從服務器下載而直接從對端獲取,大大提高了客戶端之間的數據交互,提高了數據下載的效率。
[0060]此外,當同時進行點播或直播的客戶端越多,各個客戶端都通過本發明實施例的裝置不以數據塊的順序隨機下載未下載數據時,就越能夠使得客戶端之間最大程度的從對端中獲取到自身未下載的數據塊,而不用從服務器下載,避免了各個客戶端按照數據塊順序下載數據時導致客戶端無法從其他客戶端獲取數據的缺陷。
[0061]針對上述下載數據的調度裝置需要說明的是,凡是在本發明實施例中使用到的各個單元模塊的功能都可以通過硬件處理器(hardware processor)來實現。
[0062]圖3示例了一種服務器的結構示意圖,如圖3所示,該服務器可以包括:處理器(processor)310、通信接口(Communicat1ns Interface)320、存儲器(memory)330和通信總線340,其中,處理器310,通信接口 320,存儲器330通過通信總線340完成相互間的通信。通信接口 320可以用于服務器與客戶端之間的信息傳輸。處理器310可以調用存儲器330中的邏輯指令,以執行如下方法:基于預設的IP地址將客戶端的請求發送到過渡服務器中;所述過渡服務器將所述客戶端的請求轉發到執行服務器中;根據所述請求在所述執行服務器中查找對應的域名解析結果;將所述對應的域名解析結果返回給所述客戶端。
[0063]此外,上述的存儲器330中的邏輯指令可以通過軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(R0M,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0064]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
[0065]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
[0066]最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種下載數據的調度方法,其特征在于,所述方法包括: 當客戶端與對端下載同一數據時,獲取對端的數據下載情況; 根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊; 若判斷結果為是,則從對端中獲取自身未下載的數據塊; 若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊進行下載。2.根據權利要求1所述的方法,其特征在于,所述獲取對端的數據下載情況包括: 獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況。3.根據權利要求2所述的方法,其特征在于,根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊包括: 從對端的位示圖中查找自身未下載的數據塊。4.根據權利要求3所述的方法,其特征在于,所述若判斷結果為是,則從對端中獲取自身未下載的數據塊包括: 若從對端的位示圖中查找到自身未下載的數據塊,則從對端中獲取自身未下載的數據塊。5.根據權利要求3所述的方法,其特征在于,所述若判斷結果為否,則從自身未下載的數據塊中隨機選擇一個數據塊從服務器進行下載包括: 若從對端的位示圖中查找不到自身未下載的數據塊,則停止原先的順序下載,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。6.一種下載數據的調度裝置,其特征在于,所述裝置包括: 獲取單元,用于當客戶端與對端下載同一數據時,獲取對端的數據下載情況; 判斷單元,用于根據所述數據下載情況判斷對端中是否包含自身未下載的數據塊; 所述獲取單元用于當所述判斷單元的判斷結果為是時,從對端中獲取自身未下載的數據塊; 選擇單元,用于當所述判斷單元的判斷結果為否時,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。7.根據權利要求6所述的裝置,其特征在于,所述獲取單元用于獲取對端的位示圖,所述位示圖用于記錄完整數據中各個數據塊的下載情況。8.根據權利要求7所述的裝置,其特征在于,所述判斷單元用于從對端的位示圖中查找自身未下載的數據塊。9.根據權利要求8所述的裝置,其特征在于,所述獲取單元用于當所述判斷單元從對端的位示圖中查找到自身未下載的數據塊時,從對端中獲取自身未下載的數據塊。10.根據權利要求8所述的裝置,其特征在于,所述獲取單元用于當所述判斷單元從對端的位示圖中查找不到自身未下載的數據塊時,停止原先的順序下載,從自身未下載的數據塊中隨機選擇一個數據塊進行下載。
【文檔編號】H04L29/08GK105871990SQ201510926185
【公開日】2016年8月17日
【申請日】2015年12月14日
【發明人】祝曉光
【申請人】樂視云計算有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1