TWI603599B - 資料分享方法及電子裝置 - Google Patents

資料分享方法及電子裝置 Download PDF

Info

Publication number
TWI603599B
TWI603599B TW104132940A TW104132940A TWI603599B TW I603599 B TWI603599 B TW I603599B TW 104132940 A TW104132940 A TW 104132940A TW 104132940 A TW104132940 A TW 104132940A TW I603599 B TWI603599 B TW I603599B
Authority
TW
Taiwan
Prior art keywords
electronic device
packet
node
adoption
join
Prior art date
Application number
TW104132940A
Other languages
English (en)
Other versions
TW201717579A (zh
Inventor
蔡毅軒
Original Assignee
鴻海精密工業股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 鴻海精密工業股份有限公司 filed Critical 鴻海精密工業股份有限公司
Publication of TW201717579A publication Critical patent/TW201717579A/zh
Application granted granted Critical
Publication of TWI603599B publication Critical patent/TWI603599B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address

Description

資料分享方法及電子裝置
本發明涉及一種資料分享裝置及方法,特別是關於一種伺服器向複數個終端設備分享資料的裝置及方法。
當需要從伺服器下載更新軟體或下載影像或視頻等資料到一組電子裝置(例如一個大公司內的複數台網路電話機、用戶端電腦等),這些電子裝置通常是通過網路分別連接到伺服器去下載。當所有電子裝置同時連接到伺服器下載資料時,會給伺服器造成沉重的負擔,而且,還可能造成網路擁堵。
鑒於以上內容,有必要提供一種資料分享系統及方法,能夠利用分享樹的方式將資料逐層傳送至每一節點。
一種第一電子裝置,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,所述的第一電子裝置包括:下載模組,用於從伺服器下載資料;廣播模組,用於在所述群組內廣播一“加入我們”封包以邀請所述其他電子裝置加入一分享樹,所述“加入我們”封包包括所述第一電子裝置的識別資訊、所述封包的類型、所述封包的內容;收養模組,用於判斷是否接收到群組內一第二電子裝置發出的“收養我”封包,所述“收養我”封包包括第二電子裝置的識別資訊及封包的類型,所述收養模組還用於在接收到“收養我”封包時判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同,當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,所述收養模組還用於基於一預定法則判斷所述第二電子裝置是否可成為所述第一電子裝置的子節點, 所述預定法則包括:一個父節點最多包括一個左節點和一個右節點,每一節點僅只有一個父節點;所述收養模組還用於在所述第二電子裝置可成為所述第一電子裝置的子節點時,建立所述第一電子裝置與所述第二電子裝置的連接;傳送模組,用於傳送所下載的資料至所述第二電子裝置。
一種第一電子裝置,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,所述的第一電子裝置包括:孤兒模組,用於在接收到群組內一第二電子裝置發出的“加入我們”封包時,判斷所述“加入我們”封包的識別資訊是否與所述第一電子裝置相同,及在所述識別資訊與所述電子裝置相同時判斷所述電子裝置是否願意加入一分享樹,當所述第一電子裝置願意加入所述分享樹時,使所述第一電子裝置進入一“孤兒”狀態,所述“孤兒”狀態表明所述第一電子裝置願意加入一分享樹;一被收養模組,用於在所述第一電子裝置進入“孤兒”狀態時開啟一通訊連接埠,並在所述群組內廣播“收養我”封包,當收到來自一父節點的連線請求時通過所述通訊連接埠與所述父節點建立連接,並在接收到來自父節點的“收養”封包時使所述第一電子裝置進入“被收養”狀態;及接收模組,用於在所述第一電子裝置進入“被收養”狀態時接收來自父節點的資料。
一種資料分享方法,應用於一第一電子裝置中,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,所述的資料分享方法包括:從一伺服器下載資料;在所述群組內廣播一“加入我們”封包以邀請所述其他電子裝置加入一分享樹,所述“加入我們”封包包括所述第一電子裝置的識別資訊,所述封包的類型,所述封包的內容;判斷是否接收到群組內一第二電子裝置發出的“收養我”封包,所述“收養我”封包包括第二電子裝置的識別資訊及封包的類型;在接收到“收養我”封包時判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同;當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,基於一預定法則判斷所述第二電子裝置是否可成為所述第一電子裝置的子節點,所述預定法則包括:一個父節點最多包括一個左節點和一個 右節點,每一節點僅只有一個父節點;在所述第二電子裝置可成為所述第一電子裝置的子節點時,建立所述第一電子裝置與所述第二電子裝置的連接;及傳送所下載的資料至所述第二電子裝置。
一種資料分享方法,應用於一第一電子裝置中,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,所述的資料分享方法包括:在接收到群組內一第二電子裝置發出的“加入我們”封包時,判斷所述“加入我們”封包的識別資訊是否與所述第一電子裝置相同;在所述識別資訊與所述電子裝置相同時判斷所述電子裝置是否願意加入一分享樹;當所述第一電子裝置願意加入所述分享樹時,使所述第一電子裝置進入一“孤兒”狀態,所述“孤兒”狀態表明所述第一電子裝置願意加入一分享樹;在所述第一電子裝置進入“孤兒”狀態時開啟一通訊連接埠;在所述群組內廣播“收養我”封包;當收到來自一父節點的連線請求時通過所述通訊連接埠與所述父節點建立連接;在接收到來自父節點的“收養”封包時使所述第一電子裝置進入“被收養”狀態;及在所述第一電子裝置進入“被收養”狀態時接收來自父節點的資料。
相較于習知技術,本發明所述的資料分享系統及方法能夠利用分享樹將資料逐層傳送,以便降低對伺服器的存取量,同時避免造成網路擁堵。
1、3、4、1101‧‧‧電子裝置
2、1102‧‧‧伺服器
100‧‧‧分享樹
10、600‧‧‧種子
12‧‧‧非種子節點
120‧‧‧父節點
122‧‧‧子節點
30‧‧‧第一資料分享系統
31、41‧‧‧記憶體
32、42‧‧‧處理器
301‧‧‧設置模組
302‧‧‧下載模組
303‧‧‧廣播模組
304‧‧‧收養模組
305‧‧‧傳送模組
306‧‧‧錯誤模組
40‧‧‧第二資料分享系統
401‧‧‧孤兒模組
402‧‧‧被收養模組
403‧‧‧接收模組
404‧‧‧傳送模組
405‧‧‧收養模組
406‧‧‧錯誤模組
500‧‧‧數據封包
502‧‧‧組織ID欄位
504‧‧‧產品ID欄位
506‧‧‧群組ID欄位
508‧‧‧種子MAC欄位
510‧‧‧類型欄位
512‧‧‧主體內容長度欄位
514‧‧‧主體內容欄位
602‧‧‧種子的右子節點
604‧‧‧種子的右子節點的左子節點
606‧‧‧種子的右子節點的左子節點的右子節點
圖1是本發明較佳實施例的資料分享架構示意圖。
圖2是本發明較佳實施例的分享樹的示意圖。
圖3是本發明電子裝置的較佳實施例的模組圖。
圖4是本發明電子裝置的較佳實施例的另一模組圖。
圖5是本發明較佳實施例的資料封包的示意圖。
圖6是本發明較佳實施例的確定分享樹的節點的規則的示意圖。
圖7是本發明資料分享方法的較佳實施例的流程圖。
圖8是本發明資料分享方法的較佳實施例的另一流程圖。
圖9是本發明資料分享方法的較佳實施例的再一流程圖。
圖10是本發明資料分享方法的較佳實施例的又一流程圖。
圖11是現有的資料分享架構示意圖。
參閱圖11所示,是現有的資料分享架構示意圖。在該架構中,複數個電子裝置1102,例如,網路電話,互聯網協定電話(Voice Over Internet Protocol,VOIP)閘道,用戶端電腦等,與一伺服器1100通過網際網路或廣域網路(Wide Area Network,WAN)等網路進行連接。所述電子裝置1102可通過局域網(Local Area Network,LAN)等網路進行連接。所述電子裝置1102可分佈在不同的LAN中。所述電子裝置1102分別各自通過網路從所述伺服器1100下載資料。
圖1示出了本發明的資料分享架構的較佳實施例的示意圖。複數個電子裝置1,例如網路電話,互聯網協定電話(Voice Over Internet Protocol,VOIP)閘道,用戶端電腦等,與一伺服器2通過網際網路或廣域網路(Wide Area Network,WAN)等網路進行連接。所述電子裝置1102可通過局域網(Local Area Network,LAN)等網路進行連接。所述電子裝置1102可分佈在不同的LAN中。位於同一LAN的電子裝置1可設置為一組,該組電子裝置可形成一分享樹,其中一個電子裝置可作為“種子”(也可稱為分享樹的根節點)與伺服器2連接並從伺服器2下載資料,該組內其他電子裝置則作為分享樹的節點從其父節點下載所述資料。所述分享樹上的所有節點之間的資料分享採用端對端(Point-to-Point,P2P)分享方式。
圖2示出了本發明分享樹的較佳實施例的示意圖。在該實施例中,所述分享樹100可包括分層結構,即包括有多層節點。所述伺服器2可與一個或複數個分享樹100連接以分享資料。每一分享樹100可包括一“種子”10和至少一非種子節點12。所述種子10為所述分享樹100的根節點,也是非種子節點12的父節點。所述非種子節點12也為多層結構,包括至少一父節點120和至少一子節點122。父節點120指至少包括一個子節點的節點。每一子節點僅僅只有一個父節點,每一父節點可包括一個或兩個子節點。
圖3示出了本發明電子裝置的較佳實施例的模組圖。在該實施例中,所述電子裝置為一“種子”。所述電子裝置3可為網路電話,VOIP閘道,個人電腦或其他任意適宜的用戶端設備。
所述電子裝置3可包括,但不限於,記憶體31和處理器32。記憶體31可為所述電子裝置3的內部存儲單元,例如,硬碟或記憶體,也可為插接式存儲裝置,例如:插接式硬碟,智慧存儲卡(Smart Media Card,SMC),安全數位(Secure Digital,SD)卡,快閃記憶體卡(Flash Card)。所述記憶體31也可既包括內部存儲單元也包括插接式存儲裝置。所述處理器32可為一中央處理器(Central Processing Unit,CPU),微處理器或其他資料處理晶片。
第一資料分享系統30安裝並運行於所述電子裝置3中。在本實施例中,所述的第一資料分享系統30包括,但不僅限於,設置模組301、下載模組302,廣播模組303,收養模組304,及錯誤模組305。本發明所稱的功能模組是指一種能夠被電子裝置3的處理器32所執行並且能夠完成固定功能的一系列程式指令段,其存儲於電子裝置3的記憶體31中。
所述設置模組301可用於設置所述電子裝置3的基本資料。所述電子裝置3的基本資料包括,但不限於,媒體存取控制(Media Access Control,MAC)地址,IP地址,群組號(Group ID),產品號(Product ID),組織名(Organization ID)。在該實施例中,IP位址分佈在某一特定範圍內的所述電子裝置3可被視為一組。每一組被分配一群組號。產品號被用於識別不同的產品類型或不同規格的統一產品類型,例如電話機、個人電腦、印表機等。組織名可用於區別不同的組織,例如,公司名或部門名。所述設置模組301還用於設置所述電子裝置3為一“種子”。
所述下載模組302用於從所述伺服器2下載資料。
所述廣播模組303用於在同一群組內廣播通知該群組內的其他電子裝置加入分享樹。在本實施例中,所述廣播模組303以一預定頻率進行廣播,例如每間隔100到300毫秒(ms)廣播一次。
在本實施例中,所述電子裝置3與同一群組內的電子裝置之間傳送的資訊或資料可以封包的形式進行。圖5示出了一種較佳實施例的封包格式。封包500定義了複數個欄位,包括發送封包的電子裝置的識別資訊,封包的類型,封包的內容。所述發送封包的電子裝置的識別資訊包括如下資訊中的一個或複數個:組織ID 502,產品ID 504,群組ID 506,及種子MAC(種子的MAC 地址)508。可替代地或進一步地,所述識別資訊還可包括發送封包的電子裝置的IP位址。其中,所述組織ID 502,產品ID 504,群組ID 506的賦值可來源於發送封包的電子裝置的基本資料。例如,如果是“種子”發送的封包,則封包的組織ID 502,產品ID 504,群組ID 506等欄位的賦值與“種子”的基本資料中的組織名、產品號、群組號相同;如果是父節點發送的封包,則封包的組織ID 502,產品ID 504,群組ID 506等欄位的賦值與父節點的基本資料中的組織名、產品號、群組號相同。種子MAC 508欄位的賦值為發送封包的電子裝置所在的群組的“種子”的MAC地址。在同一個群組內發送的所有封包,種子MAC 508欄位的賦值都相同。
所述類型欄位510表徵封包的類型。在本實施方式中,封包的類型包括“加入我們”封包、“收養我”封包、“收養”封包、“資料”封包及“錯誤”封包,可分別賦予值“0X0”,“0X1”,“0X2”,“0X3”,“0X4”來標示。可以理解的是,賦值可為其他形式,如:文字、數位、字母或其結合等,只要能區分不同封包類型即可。
所述主體內容長度欄位512和主體內容欄位514表徵的是封包的內容。對於不同的封包類型,主體內容長度欄位512和主體內容欄位514的值可不同。例如,對於“加入我們”封包,所述主體內容欄位514的值可為對從伺服器下載的資料的簡要描述,包括:資料檔案的大小,名字,或版本號等。此時,主體內容欄位514的長度為可變的。主體內容長度欄位512的值可即為可變的(Variable)。對於“收養我”封包,主體內容長度欄位512和主體內容欄位514可省略。對於“收養”封包,所述主體內容欄位514可為發送所述“收養”封包的電子裝置的“Last Bit”值,所述“Last Bit”值為所述電子裝置在分享樹中的層級。例如,“種子”的“Last Bit”值為“0”,“種子”的直接子節點的“Last Bit”值為“1”,子節點的“Last Bit”值為其父節點的“Last Bit”值加1。在本實施例中,所述主體內容長度欄位512的值可為“1byte”。對於“資料”封包,所述主體內容欄位514與所述主體內容長度欄位512可與所述“加入我們”封包相同。對於“錯誤”封包,所述主體內容欄位514可為錯誤的描述及發生的原因。在本實施例中,所述不同的錯誤可採用不同的代碼(例如,數位、字母、文字或其結合)標示,所述主體內容長度欄位512可為1“byte”。
所述收養模組304可用於讓另一電子裝置稱為電子裝置3的子節點。當一第一電子裝置收到一第二電子裝置發送的“收養我”封包時,所述第一電子裝置的收養模組304首先判斷所述第二電子裝置是否可以成為第一電子裝置的子節點,在第二電子裝置能稱為第一電子裝置的子節點時與第二電子裝置建立連接並傳送“收養”封包至所述第二電子裝置。其中判斷第二電子裝置是否能稱為第一電子裝置的子節點包括:判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置的基本資料相同,及所述第二電子裝置是否滿足一被收收養的特定法則(參圖6所示)。
請參閱圖6,分享樹中的每一節點具有一“Last Bits”值,代表該節點在分享樹中的層級,子節點的“Last Bits”值為其父節點的“Last Bits”值加“1”。例如,“種子”600的“Last Bits”值為“0”,“種子”的直接子節點602的“Last Bits”值為“1”,所述節點602的直接子節點604的“Last Bits”值為“2”,所述節點604的直接子節點的“Last Bits”值為“3”。所述被收養的特定法則為:一個節點要成為一個父節點的子節點,必須滿足:假定父節點的“Last Bits”值為“N”,則子節點的IP位址有N位元最低有效位元組(Least Significant Bits,LSB)與父節點相同,其中子節點的LSB的第N+1位的值為“0”時,為左子節點,為“1”時,為右子節點。例如:一節點(電子裝置)的IP位址為“192.168.0.53”,所述節點的LSB為“53”,換算成二進位(Binary)為“110101”。由於第一位LSB為“1”,當“種子”無右節點時,該節點可成為“種子”的右節點602。如果“種子”的右節點602已經存在,且節點602的左節點為空時,由於該節點的LSB最後兩位為“01”,則該節點可成為節點602的左節點604。如果節點602的左節點604已經存在,且節點604的右節點為空時,由於該節點的LSB最後三位為“101”,則該節點可成為節點604的右節點。
所述第一電子裝置的“收養”模組304判斷第二電子裝置是否滿足所述預定法則時包括:所述“收養”模組首先確定所述第二電子裝置的IP位址的N位元LSB是否與第一電子裝置相同(假定第一電子裝置的“Last Bits”為“N”)。如果所述第二電子裝置的IP位址的N位元LSB與第一電子裝置不相同,則第二電子裝置不能成為第一電子裝置的子節點。如果所述第二電子裝置的IP位址的N位元LSB與第一電子裝置相同,則所述“收養”模組304根據所 述第二電子裝置的IP位址的LSB的第N+1位的值確定所述第二電子裝置在分享樹上所對應的位置,例如第一電子裝置的左節點或右節點。最後,所述“收養”模組304確定該對應的位置上是否已經存在一個子節點。如果該對應的位置上沒有子節點,則該第二電子裝置可成為該第一電子裝置的子節點,否則,該第二電子裝置不能成為該第一電子裝置的子節點。
所述錯誤模組305可用於當下載出現錯誤時傳送“錯誤”封包至對應的子節點。例如,所述錯誤可包括:所述電子裝置3與伺服器的連接斷開,下載失敗,或下載的資料錯誤等。
圖4示出了本發明電子裝置的另一實施例的模組圖。在該實施例中,所述電子裝置4不是“種子”。所述電子裝置4可為網路電話、VOIP閘道、個人電腦、印表機或其他任何適宜的用戶端裝置。
所述電子裝置4可包括,但不限於,一記憶體41和一處理器42。所述記憶體41與上述記憶體31類同,所述處理器42與所述處理器32類同,在此不再贅述。
第二資料分享系統40安裝並運行於所述電子裝置4中。在本實施例中,所述的第一資料分享系統40包括,但不僅限於,孤兒模組401,被收養模組402,接收模組403,傳送模組404,收養模組405及錯誤模組406。
所述孤兒模組401可用於使所述電子裝置4從一“正常”狀態進入一“孤兒”狀態。在本實施例中,所述電子裝置3或4可包括四個狀態:“正常”狀態,“種子”狀態,“孤兒”狀態及“被收養”狀態。所述正常狀態為缺省狀態。當電子裝置連接至伺服器並從伺服器下載資料時,所述電子裝置進入“種子”狀態。所述“孤兒”狀態標示所述電子裝置同意加入分享樹。所述“被收養”狀態標示所述電子裝置已經成為分享樹的一個節點。
當電子裝置4收到“種子”發出的“加入我們”封包,所述孤兒模組401確定所述“加入我們”封包的識別資訊是否與所述電子裝置4相同,及當述“加入我們”封包的識別資訊與所述電子裝置4相同時確定所述電子裝置4是否願意加入分享樹。所述孤兒模組401確定所述電子裝置4是否願意加入分享樹可基於用戶的選擇或一預先確定的規則,例如,版本比較,當版本不相同時 表示願意加入分享樹。當所述電子裝置4願意加入分享樹時,所述電子裝置4進入“孤兒”狀態。
所述被收養模組402用於使得所述電子裝置4從“孤兒”狀態進入“被收養”狀態。所述被收養模組402首先開啟所述電子裝置4的通訊連接埠(例如:TCP埠,在其他實施方式中,也可為其他類似的通訊連接埠),並在所屬群內廣播所述“收養我”封包。在本實施例中,所述被收養模組402以一預定頻率廣播該“收養我”封包,例如每100~300毫秒(ms)廣播一次。所述被收養模組402在收到來自父節點的連接請求時(例:TCP連接請求),建立所述電子裝置4與所述父節點之間的連接。所述電子裝置4與所述父節點之間的連接建立後,所述電子裝置4將停止廣播“收養我”封包及停止接收來自其他父節點的連接請求。當收到來自父節點的“收養”封包時,所述被收養模組402可使得所述電子裝置4進入“被收養”狀態。
所述接收模組403用於從父節點接收資料。
所述傳送模組404用於傳送資料至所述電子裝置4的子節點,當電子裝置4有子節點時。
所述收養模組405用於收養其他電子裝置稱為所述電子裝置4的子節點。所述收養模組405的工作方式類同於所述收養模組304,在此不贅述。
所述錯誤模組406類同於所述錯誤模組305,在此不贅述。
參閱圖7所示,是本發明資料分享方法的較佳實施例的流程圖。在該實施例中,所述方法700為電子裝置為種子時所執行的方法。根據不同需求,該流程圖中步驟的順序可以改變,某些步驟可以省略或合併。
步驟702,所述電子裝置連接至所述伺服器下載資料。所述資料可為影像、音訊、視頻、軟體、文字等。與此同時,所述電子裝置進入“種子”狀態。
步驟704,所述電子裝置確定所述電子裝置的群組號是否等於零。在本實施例中,群組號等於零標示該電子裝置沒有群組關係。如果所述電子裝置的群組號為零,流程結束;如果所述電子裝置的群組號不為零,流程進入步驟706。
步驟706,所述電子裝置在所屬群組內廣播“加入我們”封包,所述“加入我們”封包基於使用者資料包通訊協定(User Datagram Protocol,UDP)。
步驟708,所述電子裝置確定所述電子裝置是否收到第二電子裝置發出的“收養我”封包。如果收到“收養我”封包,流程進入步驟710,否則,流程返回步驟706。
步驟710,所述電子裝置確定所述電子裝置是否收養第二電子裝置成為其子節點。具體地,所述電子裝置確定所述“收養我”封包的識別資訊是否與所述電子裝置相同,當所述“收養我”封包的識別資訊與所述電子裝置相同時,所述電子裝置進一步確定所述第二電子裝置是否滿足被收養的預定法則(如圖6所示)。如果第二電子裝置滿足被收養的預定法則,則表明第二電子裝置可成為所述電子裝置的子節點,流程進入步驟712,否則,流程返回到步驟708。
步驟712,所述電子裝置建立與所述子節點(第二電子裝置)的通信連接(例如:TCP連接)。具體地,所述電子裝置首先發送一連接請求至所述子節點,當所述子節點接受所述連接請求時建立與所述子節點的通信連接。
步驟714,所述電子裝置發送“收養”封包至子節點,所述“收養”封包包括所述電子裝置的“Last Bits”。
步驟716,所述電子裝置確定在從伺服器下載資料的過程中是否發生錯誤,例如與伺服器斷開,下載失敗,或下載資料錯誤等。當下載出現錯誤時,流程進入步驟722,否則所述流程進入步驟718。
步驟718,所述電子裝置傳送“資料”封包至子節點。從伺服器下載的資料可作為“資料”封包的附件與“資料”封包同時傳送。
步驟720,所述電子裝置確定所述資料是否成功下載完成,如果成功下載完成,所述流程進入步驟724,否則流程返回步驟718。
步驟724,所述電子裝置斷開與所述子節點的通信連接。
步驟726,所述電子裝置進入“正常”狀態。
圖8示出了本發明資料分享方法較佳實施例的另一流程圖。所述方法800可被一非“種子”的電子裝置執行。
步驟802,所述電子裝置確定是否收到“種子”發出的“加入我們”封包。如果所述電子裝置收到“加入我們”封包,所述流程進入步驟804,否則所述流程返回步驟802。
步驟804,所述電子裝置確定所述“加入我們”封包的識別資訊是否與所述電子裝置相同。如果所述“加入我們”封包的識別資訊與所述電子裝置相同,流程進入步驟806,否則,流程返回步驟802。
步驟806,所述電子裝置判斷所述電子裝置是否願意加入分享樹。所述電子裝置判斷所述電子裝置是否願意加入分享樹可基於用戶的選擇或一預定的規則來進行判斷。所述預定的規則例如:版本比較,版本不相同時表明願意加入分享樹,版本相同時表明不願意加入分享樹。如果所述電子裝置願意加入分享樹,流程進入步驟808,否則,流程返回步驟802。
步驟808,所述電子裝置進入“孤兒”狀態。
圖9示出了本發明資料分享方法的較佳實施例的再一流程圖。所述方法900可被一進入“孤兒”狀態的電子裝置執行。
步驟902,所述電子裝置開啟通訊連接埠,例如TCP埠。
步驟904,所述電子裝置在所屬群組內廣播“收養我”封包。在該實施例中,所述電子裝置以一預定頻率廣播該“收養我”封包,例如,每100~300毫秒(ms)廣播一次。所述“收養我”封包基於UDP。
步驟906,所述電子裝置判斷是否收到來自父節點的連接請求,如果收到來自父節點的連接請求,所述流程進入步驟908,否則,所述流程進入步驟918。
步驟908,所述電子裝置建立與所述父節點的通信連接。與父節點的通信連接建立後,所述電子裝置停止廣播“收養我”封包及停止接收來自其他節點的連接請求。
步驟910,所述電子裝置判斷是否收到來自父節點的“收養”封包。如果收到來自父節點的“收養”封包,流程進入步驟912,否則,流程進入步驟914。
步驟912,所述電子裝置進入“被收養”狀態。同時,所述電子裝置的“Last Bits”為其父節點的“Last Bits”加1。
步驟914,所述電子裝置判斷所述埠開啟超過預定時間,例如,10秒。如果所述埠開啟超過預定時間,流程進入步驟916,否則流程返回步驟910。
步驟916,所述電子裝置關閉所述埠,所述電子裝置進入“正常”狀態。
步驟918,所述電子裝置判斷所述埠開啟超過預定時間,例如,10秒。如果所述埠開啟超過預定時間,流程進入步驟916,否則流程返回步驟906。
圖10示出了本發明資料分享方法的較佳實施例的又一流程圖。所述方法1000被一進入“被收養”狀態的電子裝置執行。
步驟1002,所述電子裝置判斷是否收到來自父節點的“資料”封包,當所述電子裝置接收到來自父節點的資料封包時,流程進入步驟1004,否則,流程進入步驟1018。
步驟1004,所述電子裝置停止接收其他電子裝置發出的“收養我”封包。
步驟1006,所述電子裝置從所述父節點接收所述“資料”封包及資料。當所述電子裝置存在子節點時,傳送所接收到的資料封包及資料至所述電子裝置的子節點。
步驟1008,所述電子裝置判斷從父節點接收資料時是否發生錯誤,所述錯誤包括:與父節點的連接斷開,接收失敗,或接收的資料錯誤等。如果從父節點接收資料錯誤,流程進入步驟1012,否則,流程進入步驟1010。
步驟1010,所述電子裝置判斷從父節點接收資料是否成功完成,如果成功完成,流程進入步驟1014,否則流程返回步驟1006。
步驟1012,所述電子裝置傳送“錯誤”封包至所述子節點以通知子節點該錯誤。
步驟1014,所述電子裝置斷開與所述父節點的連接。
步驟1016,所述電子裝置進入“正常”狀態。
步驟1018,所述電子裝置判斷是否接收到來自一第四電子裝置的“收養我”封包。如果接收到所述“收養我”封包,流程進入步驟1020,否則,流程返回步驟1002。
步驟1020,所述電子裝置判斷是否收養所述第四電子裝置成為其子節點。具體地,所述電子裝置判斷所述“收養我”封包的識別資訊是否與所述電子裝置相同。當所述“收養我”封包的識別資訊與所述電子裝置相同時,所述電子裝置判斷所述第四電子裝置是否滿足圖6所示的被收養的預定法則。如果所述第四電子裝置滿足圖6所示的被收養的預定法則,則所述第四電子裝置可以被所述電子裝置收養成為其子節點,流程進入步驟1022,否則流程返回步驟1002。
步驟1022,所述電子裝置建立與所述子節點(第四電子裝置)的連接,例如TCP連接。
步驟1024,所述電子裝置傳送“收養”封包至子節點(第四電子裝置)。所述“收養”封包包括所述電子裝置的“Last Bits”值。
本發明的資料分享系統及方法,通過分享樹的方法將資料逐層傳送,伺服器僅需傳送資料給所述分享樹的根節點即可,不需要所有的電子裝置都連接至伺服器去下載資料,降低了伺服器的負荷,同時也避免了多台電子裝置同時下載造成的網路擁堵。
以上實施例僅用以說明本發明的技術方案而非限制,儘管參照實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換,而不脫離本發明技術方案的精神和範圍。
1‧‧‧電子裝置
2‧‧‧伺服器

Claims (9)

  1. 一種第一電子裝置,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,其改良在於,所述第一電子裝置包括:下載模組,用於從伺服器下載資料;廣播模組,用於在所述群組內廣播一“加入我們”封包以邀請所述其他電子裝置加入一分享樹,所述“加入我們”封包包括所述第一電子裝置的識別資訊,所述封包的類型,所述封包的內容;收養模組,用於判斷是否接收到群組內一第二電子裝置發出的“收養我”封包,所述“收養我”封包包括第二電子裝置的識別資訊及封包的類型,所述收養模組還用於在接收到“收養我”封包時判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同,當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,所述收養模組還用於基於一預定法則判斷所述第二電子裝置是否可成為所述第一電子裝置的子節點,所述預定法則包括:一個父節點最多包括一個左節點和一個右節點,每一節點僅只有一個父節點;所述收養模組還用於在所述第二電子裝置可成為所述第一電子裝置的子節點時,建立所述第一電子裝置與所述第二電子裝置的連接;及傳送模組,用於傳送所下載的資料至所述第二電子裝置。
  2. 如請求項第1項所述的第一電子裝置,其中,所述預定法則還包括:當一父節點的Last Bits為N時,子節點的IP位址有N位最低有效位元組與父節點相同,且子節點的IP位址的第N+1位最低有效位元組為“0”時,所述子節點為父節點的左子節點,子節點的IP位址的第N+1位最低有效位元組為“1”時,所述子節點為父節點的右子節點,其中Last Bits代表所述父節點在分享樹中的層級數,根節點的層級為“0”,子節點的層級為父節點的層級數加1。
  3. 如請求項第1項所述的第一電子裝置,其中,還包括一錯誤模組,用於當從伺服器下載資料出現錯誤時,傳送一錯誤封包給子節點,所述錯誤封包描述所述錯誤的原因。
  4. 如請求項第1項所述的第一電子裝置,其中,所述識別資訊包括如下中的一個或複數個:組織名、產品號、群組號、所述分享樹的根節點的MAC地址。
  5. 一種第一電子裝置,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,其改良在於,所述第一電子裝置包括:孤兒模組,用於在接收到群組內一第二電子裝置發出的“加入我們”封包時,判斷所述“加入我們”封包的識別資訊是否與所述第一電子裝置相同,及在所述識別資訊與所述電子裝置相同時判斷所述電子裝置是否願意加入一分享樹,當所述第一電子裝置願意加入所述分享樹時,使所述第一電子裝置進入一“孤兒”狀態,所述“孤兒”狀態表明所述第一電子裝置願意加入一分享樹;一被收養模組,用於在所述第一電子裝置進入“孤兒”狀態時開啟一通訊連接埠,並在所述群組內廣播“收養我”封包,當收到來自一父節點的連線請求時通過所述通訊連接埠與所述父節點建立連接,並在接收到來自父節點的“收養”封包時使所述第一電子裝置進入“被收養”狀態;接收模組,用於在所述第一電子裝置進入“被收養”狀態時接收來自父節點的資料;收養模組,用於在接收到來自群組內一第三電子裝置發出的“收養我”封包時,判斷所述第三電子裝置是否可成為其子節點;及用於在所述第三電子裝置能成為其子節點時與所述第三電子裝置建立連接,其中所述收養模組判斷所述第三電子裝置是否能成為其子節點具體為:判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同,當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,所述收養模組還用於判斷基於一預定法則所述第三電子裝置是否可成為所述第一電子裝置的子節點,所述預定法則包括:一個父節點最多包括一個左節點和一個右節點,每一節點僅只有一個父節點;及傳送模組,用於在於第三電子裝置建立連接後傳送資料至所述第三電子裝置。
  6. 如請求項第5項所述的第一電子裝置,其中,還包括一錯誤模組,用於當從伺服器下載資料出現錯誤時,傳送一錯誤封包給子節點,所述錯誤封包描述所述錯誤的原因。
  7. 一種資料分享方法,應用於一第一電子裝置中,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,其改良在於,所述的資料分享方法包括:從一伺服器下載資料;在所述群組內廣播一“加入我們”封包以邀請所述其他電子裝置加入一分享樹,所述“加入我們”封包包括所述第一電子裝置的識別資訊,所述封包的類型,所述封包的內容;判斷是否接收到群組內一第二電子裝置發出的“收養我”封包,所述“收養我”封包包括第二電子裝置的識別資訊及封包的類型;在接收到“收養我”封包時判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同;當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,基於一預定法則判斷所述第二電子裝置是否可成為所述第一電子裝置的子節點,所述預定法則包括:一個父節點最多包括一個左節點和一個右節點,每一節點僅只有一個父節點;在所述第二電子裝置可成為所述第一電子裝置的子節點時,建立所述第一電子裝置與所述第二電子裝置的連接;及傳送所下載的資料至所述第二電子裝置。
  8. 如請求項第7項所述的資料分享方法,其中,該方法還包括步驟:當從伺服器下載資料出現錯誤時,傳送一錯誤封包給子節點,所述錯誤封包描述所述錯誤的原因。
  9. 一種資料分享方法,應用於一第一電子裝置中,該第一電子裝置與複數個其他電子裝置相連以形成一個群組,其改良在於,所述的資料分享方法包括: 在接收到群組內一第二電子裝置發出的“加入我們”封包時,判斷所述“加入我們”封包的識別資訊是否與所述第一電子裝置相同;在所述識別資訊與所述電子裝置相同時判斷所述電子裝置是否願意加入一分享樹;當所述第一電子裝置願意加入所述分享樹時,使所述第一電子裝置進入一“孤兒”狀態,所述“孤兒”狀態表明所述第一電子裝置願意加入一分享樹;在所述第一電子裝置進入“孤兒”狀態時開啟一通訊連接埠;在所述群組內廣播“收養我”封包;當收到來自一父節點的連線請求時通過所述通訊連接埠與所述父節點建立連接;在接收到來自父節點的“收養”封包時使所述第一電子裝置進入“被收養”狀態;在所述第一電子裝置進入“被收養”狀態時接收來自父節點的資料;在接收到來自群組內一第三電子裝置發出的“收養我”封包時,判斷所述第三電子裝置是否可成為其子節點;及在所述第三電子裝置能成為其子節點時與所述第三電子裝置建立連接,其中判斷所述第三電子裝置是否能成為其子節點具體為:判斷所述“收養我”封包的識別資訊是否與所述第一電子裝置相同,當所述“收養我”封包的識別資訊與所述第一電子裝置相同時,判斷基於一預定法則所述第三電子裝置是否可成為所述第一電子裝置的子節點,所述預定法則包括:一個父節點最多包括一個左節點和一個右節點,每一節點僅只有一個父節點;及在第三電子裝置建立連接後傳送資料至所述第三電子裝置。
TW104132940A 2015-09-08 2015-10-07 資料分享方法及電子裝置 TWI603599B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/847,892 US9787730B2 (en) 2015-09-08 2015-09-08 Data sharing method and electronic device using same

Publications (2)

Publication Number Publication Date
TW201717579A TW201717579A (zh) 2017-05-16
TWI603599B true TWI603599B (zh) 2017-10-21

Family

ID=58189676

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104132940A TWI603599B (zh) 2015-09-08 2015-10-07 資料分享方法及電子裝置

Country Status (3)

Country Link
US (1) US9787730B2 (zh)
CN (1) CN106506578B (zh)
TW (1) TWI603599B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11190514B2 (en) * 2019-06-17 2021-11-30 Microsoft Technology Licensing, Llc Client-server security enhancement using information accessed from access tokens

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013948A (zh) * 2006-01-30 2007-08-08 瞻博网络公司 构建等耗多径多播分发结构
US20120271719A1 (en) * 2011-04-25 2012-10-25 Ben Straley Targeting advertising based on tracking content sharing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6188694B1 (en) * 1997-12-23 2001-02-13 Cisco Technology, Inc. Shared spanning tree protocol
KR100480272B1 (ko) * 2001-10-31 2005-04-07 삼성전자주식회사 소결합 고도 병렬 라우터 내의 라우팅 조정 프로토콜을위한 프리픽스 통합 방법
US7764687B1 (en) * 2002-03-28 2010-07-27 Meriton Networks Us Inc. Longest prefix match search technique
US8599822B2 (en) * 2005-03-23 2013-12-03 Cisco Technology, Inc. Slot-based transmission synchronization mechanism in wireless mesh networks
CN100542341C (zh) * 2005-08-12 2009-09-16 深圳华为通信技术有限公司 实现移动终端间数据共享的方法和设备
CN100461914C (zh) * 2005-10-28 2009-02-11 华为技术有限公司 一种移动台数据下载方法
US7839850B2 (en) 2006-01-30 2010-11-23 Juniper Networks, Inc. Forming equal cost multipath multicast distribution structures
JP4995651B2 (ja) * 2007-06-25 2012-08-08 パナソニック株式会社 木構造を持つ鍵管理ソフトウエアにおける、鍵使用の高速化手段、及び装置
US8095677B1 (en) * 2009-05-21 2012-01-10 Sendmail, Inc. Configuration rule generation with compressed address sets
CN102821359B (zh) * 2011-06-09 2015-03-11 华为技术有限公司 业务共享传输方法、装置及系统
CN103049444B (zh) * 2011-10-12 2016-09-28 阿里巴巴集团控股有限公司 一种数据信息分类结构的存储方法和系统
US8879550B2 (en) * 2012-05-08 2014-11-04 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for packet classification
US9386353B2 (en) * 2013-01-25 2016-07-05 Huawei Technologies Co., Ltd. Child node, parent node, and caching method and system for multi-layer video network
US9032251B2 (en) * 2013-03-12 2015-05-12 Cray Inc. Re-forming an application control tree without terminating the application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013948A (zh) * 2006-01-30 2007-08-08 瞻博网络公司 构建等耗多径多播分发结构
US20120271719A1 (en) * 2011-04-25 2012-10-25 Ben Straley Targeting advertising based on tracking content sharing

Also Published As

Publication number Publication date
CN106506578A (zh) 2017-03-15
US20170070542A1 (en) 2017-03-09
CN106506578B (zh) 2019-10-01
TW201717579A (zh) 2017-05-16
US9787730B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
US11200133B1 (en) Intelligent device role discovery
US8024469B1 (en) System and method for connecting network sockets between applications
US7751339B2 (en) Method and apparatus for simply configuring a subscriber appliance for performing a service controlled by a separate service provider
Rosen Linux kernel networking: Implementation and theory
Sosinsky Networking bible
US11711288B2 (en) Centralized error telemetry using segment routing header tunneling
CN109644186A (zh) 用于在两个终端之间经由多路径进行udp通信的方法
US11888818B2 (en) Multi-access interface for internet protocol security
US20230179522A1 (en) Executing workloads across multiple cloud service providers
WO2017028398A1 (zh) 通信处理方法和装置
WO2017148419A1 (zh) 数据传输方法及服务器
WO2012058930A1 (zh) 链路故障检测方法及系统
CN108737183B (zh) 一种转发表项的监测方法及装置
US8055897B2 (en) Digital object title and transmission information
RU2609086C2 (ru) Сетевое устройство пересылки пакетов (варианты), способ настройки сетевого устройства пересылки пакетов (варианты) и способ пересылки пакета
US20090178104A1 (en) Method and system for a multi-level security association lookup scheme for internet protocol security
US8650313B2 (en) Endpoint discriminator in network transport protocol startup packets
US7660906B1 (en) Data delivery system and method
WO2022100199A1 (zh) 数据传输方法、装置、介质、电子设备及网络接入设备
CN108809549B (zh) 一种传输数据的方法及设备
TWI603599B (zh) 資料分享方法及電子裝置
US10027586B2 (en) Network address family translation method and system
CN109150726A (zh) 一种报文处理方法和装置
US20100020703A1 (en) Network infrastructure capability detection
CN105743861B (zh) 一种发送报文的方法、装置及设备