Peer-to-peer relay network
Abstract
The present invention discloses a method and device for implementing peer-to-peer switching. In one implementation, a pair of equality switching network includes: a plurality of N peer systems; wherein each peer system is connected to a number of other peer systems, the number of connections is less than or equal to a connection upper limit, the The upper limit of connection is greater than or equal to 2, the upper limit of connection is less than or equal to N-2, and each peer-to-peer system is configured to transfer data to that according to a transfer rule group consisting of one or more transfer rules Multiple peer-to-peer systems connected by a peer-to-peer system.

Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
53 claims: 36 independent, 17 dependent
- 1一種對等式轉接網路,包括:複數個N對等系統;其中每個對等系統都被連接至數個其他對等系統,連接數目小於或等於一連接上限,該連接上限大於或等於2,該連接上限小於或等於N-2,以及每個對等系統都被組態成,依據一由一或多項轉接規則組成的轉接規則組,轉接資料至該對等系統所連接的多個對等系統。
- 2如請求項1之對等式轉接網路,其中:每個對等系統都被組態成,當一對等系統接收到來自一傳送端對等系統的資料時,該對等系統傳送該資料給連接至該對等系統的每個對等系統,但是該對等系統不會回傳該資料至該傳送端對等系統,並且如果該對等系統曾經傳送相同的資料,則該對等系統不會傳送該資料至任何對等系統。
- 3如請求項2之對等式轉接網路,其中:每個對等系統都被組態成,接收一訊息內所包含的資料,以及每個對等系統都被組態成,從一訊息擷取識別資訊,藉此判定該對等系統是否曾經傳送一包含該相同資料的訊息。
- 4如請求項1之對等式轉接網路,其中:每個對等系統都被組態成,使用訊息來轉接資料,資料一訊息包含要轉接的資料、一訊息起源識別項、一序列值及位址資訊。
- 5如請求項1之對等式轉接網路,其中:對等系統所轉接的資料是一網路環境更新資料。
- 6如請求項1之對等式轉接網路,其中:對等系統所轉接的資料是一線上遊戲更新資料。
- 7如請求項1之對等式轉接網路,其中:至少一對等系統是一具備網路功能的遊戲控制台。
- 8如請求項1之對等式轉接網路,進一步包括:一伺服器,其連接至每個對等系統。
- 9如請求項1之對等式轉接網路,其中:每個對等系統各具有該連接上限的一對應值。
- 10如請求項1之對等式轉接網路,其中:該連接上限之值會動態變更。
- 11如請求項1之對等式轉接網路,其中:至少兩個對等系統係透過網際網路連接。
- 12一種適用於對等式轉接網路之伺服器包括:建置構件,用於建置一對等式轉接網路;加入構件,用於新增一對等系統至一對等式轉接網路;維護構件,用於維護一對等式轉接網路;以及追蹤構件,用於追蹤一對等式轉接網路中的連接。
- 13一種適用於對等式轉接網路之對等系統包括:轉接構件,用於在一對等式轉接網路中轉接資料至該對等系統所連接的任何其他對等系統;建置構件,用於建置一對等式轉接網路;加入構件,用於加入一對等式轉接網路;連接構件,用於連接至一對等式轉接網路中的其他對等系統;維護構件,用於維護一對等式轉接網路;以及切斷連接構件,用於在一對等式轉接網路中切斷其他對等系統與該對等系統之間的連接。
- 14一種在對等式轉接網路中轉接資料之方法,包括:在一對等式轉接網路中,在一轉接端對等系統處接收來自一連接至該轉接端對等系統之傳送端對等系統的資料;套用由一或多項轉接規則組成的該轉接規則組,藉此選擇由一或多項轉接規則組成的該轉接規則組所指示之零或多個對等系統,以便轉接該資料至所選對等系統;以及轉接該資料至藉由套用由一或多項轉接規則組成的該轉接規則組所選擇的任何對等系統。
- 15如請求項14之方法,其中:由一或多項轉接規則組成的該轉接規則組指示出,該轉接端對等系統不會將接收自該傳送端對等系統的該相同資料轉接至該傳送端對等系統。
- 16如請求項14之方法,其中:由一或多項轉接規則組成的該轉接規則組指示出,該轉接端對等系統不會轉接兩次該相同資料至相同的對等系統。
- 17如請求項14之方法,其中:由一或多項轉接規則組成的該轉接規則組指示出,按照用於識別該接收之資料的資訊,該轉接端對等系統不會轉接該資料至標示為該資料起源的對等系統。
- 18如請求項14之方法,進一步包括:儲存用於識別該接收之資料的資訊。
- 19如請求項14之方法,進一步包括:比較用於識別該接收之資料的資訊與該轉接端對等系統所儲存的資訊,藉此判定該轉接端對等系統是否先前曾經接收到該接收之資料。
- 20如請求項14之方法,其中:對接收之資料是一網路環境更新資料。
- 21如請求項14之方法,其中:對接收之資料是一線上遊戲更新資料。
- 22如請求項14之方法,其中:至少一對等系統是一具備網路功能的遊戲控制台。
- 23如請求項14之方法,其中:至少兩個對等系統係透過網際網路連接。
- 24一種用於新增一對等系統至一對等式轉接網路之方法,包括:開啟一介於一伺服器與一加入端對等系統之間的連接;提供網格(grid)資訊至該加入端對等系統,該網格資訊指示一或多個建置之對等式轉接網路;自該加入端對等系統接收一用於指示一所選對等式轉接網路的網格選擇項,該所選對等式轉接網路具有一或多個成員對等系統;提供該等一或多個成員對等系統的對應網路位址至該加入端對等系統;以及從該加入端對等系統接收一連接更新,該連接更新指示該加入端對等系統所連接的成員對等系統;其中每個成員對等系統都被連接至數個其他成員對等系統,連接數目小於或等於一連接上限,並且每個成員對等系統都會儲存一由一或多項轉接規則組成的轉接規則組,藉此轉接資料至該成員對等系統所連接的其他成員對等系統。
- 25如請求項24之方法,進一步包括:開啟一介於該伺服器與一建置端對等系統之間的連接,其中該建置端對等系統是該等成員對等系統之一;接收來自該建置端對等系統的一用於建立該對等式轉接網路的要求;在儲存裝置中註冊該對等式轉接網路;以及傳送一建立確認至該建置端對等系統。
- 26一種加入一對等式轉接網路之方法,包括:在一對等式轉接網路中,從一加入端對等系統傳送一加入訊息至一或多個成員對等系統中的每個成員對等系統;從該等一或多個成員對等系統中至少一成員對等系統接收一加入回應,其中每個加入回應都是肯定或否定,並且一肯定加入回應指示該傳送端成員對等系統具有一可用連接,而且一否定加入回應指示該傳送端成員對等系統不具有一可用連接;依據一由一或多項轉接規則組成的轉接規則組來選取一或多個成員對等系統,選取的成員對等系統數量最高以不超過一連接上限為限;開啟一連至每個所選成員對等系統的連接;其中每個成員對等系統都被連接至數個其他成員對等系統,連接數目小於或等於該連接上限,並且每個成員對等系統都會儲存一由一或多項轉接規則組成的轉接規則組,藉此轉接資料至該成員對等系統所連接的其他成員對等系統。
- 27如請求項26之方法,其中:如果一成員對等系統之連至其他成員對等系統的開啟連接數目小於該連接上限,則該成員對等系統具有一可用連接。
- 28如請求項26之方法,其中:選取一或多個成員對等系統包括儲存每個所接收之加入回應的回應時間。
- 29如請求項26之方法,其中:選取一或多個成員對等系統包括:選取該加入端對等系統第一個自該處接收到肯定加入回應的成員對等系統,以及選取相該加入端對等系統在一時間限制內最後自該處接收到肯定加入回應的成員對等系統。
- 30如請求項29之方法,其中:選取一或多個成員對等系統包括:從已自該處接收到肯定加入回應的其餘未選取之成員對等系統中,實際上隨機選取額外的成員對等系統,選取之數目最高以不超過該連接上限為限。
- 31如請求項29之方法,其中:選取一或多個成員對等系統包括:從已自該處接收到肯定加入回應的其餘未選取之成員對等系統中,按照接收到之肯定加入回應的順序,選取額外的成員對等系統,選取之數目最高以不超過該連接上限為限。
- 32如請求項26之方法,其中:選取一或多個成員對等系統包括:選取一已自該處接收到一否定加入回應的成員對等系統,作為一強制連接端對等系統;傳送一強制連接要求至該強制連接端對等系統,其中該強制連接要求係要求該強制連接端對等系統關閉該強制連接端對等系統的開啟連接之一;以及從該強制連接端對等系統接收一強制連接確認。
- 33如請求項32之方法,其中:選取該強制連接端對等系統包括:套用由一或多項轉接規則組成的該轉接規則組,來選擇傳送否定加入回應的成員對等系統。
- 34如請求項26之方法,進一步包括:開啟一介於一伺服器與該加入端對等系統之間的連接;在該加入端對等系統處接收網格資訊,該網格資訊指示一或多個建置之對等式轉接網路;自該加入端對等系統傳送一用於指示一所選對等式轉接網路的網格選擇項至該伺服器,該所選對等式轉接網路具有一或多個成員對等系統;在該加入端對等系統處接收該等一或多個成員對等系統的對應網路位址;以及從該加入端對等系統傳送一連接更新,該連接更新指示該加入端對等系統所連接的成員對等系統;
- 35一種建置一對等式轉接網路之方法,包括:開啟一介於該伺服器與一建置端對等系統之間的連接,其中該建置端對等系統是該等成員對等系統之一;從該建置端對等系統傳送一用於建立該對等式轉接網路之要求至該伺服器;在該建置端對等系統處接收一來自該伺服器的建立確認;其中該建置端對等系統儲存一連接上限,該連接上限定義該建置端對等系統被允許連接的其他對等系統數目以不超過該連接上限為限,並且該建置端對等系統儲存一由一或多項轉接規則組成的轉接規則組,藉此轉接資料至該建置端對等系統所連接的其他對等系統。
- 36一種在對等式轉接網路中連接多個對等系統之方法,包括:在一對等式轉接網路中,如果一切斷連接之對等系統連至成員對等系統的開啟中連接數小於一連接上限,則該切斷連接之對等系統傳送一連接可用訊息至一或多個成員對等系統;從該等一或多個成員對等系統中至少一成員對等系統接收一連接可用回應,其中每個連接可用回應都是肯定或否定,並且一肯定加入回應指示該傳送端成員對等系統具有一可用連接,而且一否定加入回應指示該傳送端成員對等系統不具有一可用連接;依據一由一或多項轉接規則組成的轉接規則組,選取一成員對等系統;開啟一連至該所選成員對等系統的連接;其中每個成員對等系統都被連接至數個其他成員對等系統,連接數目小於或等於該連接上限,並且每個成員對等系統都會儲存一由一或多項轉接規則組成的轉接規則組,藉此轉接資料至該成員對等系統所連接的其他成員對等系統。
- 37如請求項36之方法,進一步包括:由該已切斷連接之對等系統來關閉一連接。
- 38如請求項36之方法,其中:如果一成員對等系統之連至其他成員對等系統的開啟連接數目小於該連接上限,則該成員對等系統具有一可用連接。
- 39如請求項36之方法,其中:選取一成員對等系統包括儲存每個所接收之加入回應的回應時間。
- 40如請求項36之方法,其中:選取一成員對等系統包括:選取該已切斷連接之對等系統第一個自該處接收到肯定連接可用回應的成員對等系統。
- 41如請求項36之方法,其中:選取一成員對等系統包括:不會選取該已切斷連接之對等系統在一切斷連接時段內一曾經切斷與該已切斷連接對等系統之連接的對等系統。
- 42如請求項36之方法,其中:選取一成員對等系統包括:選取一已自該處接收到一否定連接可用回應的成員對等系統,作為一強制連接端對等系統;傳送一強制連接要求至該強制連接端對等系統,其中該強制連接要求係要求該強制連接端對等系統關閉該強制連接端對等系統的開啟連接之一;以及從該強制連接端對等系統接收一強制連接確認。
- 43如請求項42之方法,其中:選取該強制連接端對等系統包括:套用由一或多項轉接規則組成的該轉接規則組,來選擇傳送否定連接可用回應的成員對等系統。
- 44如請求項36之方法,進一步包括:傳送一更新至一伺服器,該更新指示已開啟一介於該已切斷連接之對等系統與該選取之成員對等系統之間的連接。
- 45一種維護一對等式轉接網路之方法,包括:在一對等式轉接網路中,從一對等系統傳送一維護訊息至該對等系統所連接之一或多個連接之對等系統中的每個連接之對等系統;評估任何接收自該等一或多個連接之對等系統的回應;如果來自一連接之對等系統的回應不可接受,則關閉介於該對等系統與該連接之對等系統之間的連接;其中每個對等系統都被連接至數個其他對等系統,連接數目小於或等於一連接上限,並且每個對等系統都會儲存一由一或多項轉接規則組成的轉接規則組,藉此轉接資料至該對等系統所連接的其他對等系統。
- 46如請求項45之方法,其中:該維護訊息是一ping訊息。
- 47如請求項45之方法,其中:如果該對等系統在一時間限制內未接收到來自一連接之對等系統的一回應,則該對等系統不接受該回應。
- 48如請求項45之方法,其中:如果未接收到一回應,則該回應被視為不可接受。
- 49如請求項45之方法,其中:如果該對等系統在一時間限制內未多次接收到來自一連接之對等系統的一回應,則該對等系統不接受來自連接之對等系統的該回應。
- 50如請求項45之方法,進一步包括:如果來自一連接之對等系統的回應不可接受,則針對一介於該對等系統與該連接之對等系統之間的連接,傳送一連接狀態要求至一伺服器;
- 51如請求項45之方法,進一步包括:傳送一更新至一伺服器,該更新針對該對等系統所關閉的每個連接來指示已關閉一連接。
- 52一種儲存在一有形體之儲存媒體上的電腦程式,用於在一適用於對等式轉接網路的伺服器中使用,該程式包括促使一電腦執行下列動作的可執行指令:建置一對等式轉接網路;新增一對等系統至一對等式轉接網路;維護一對等式轉接網路;以及追蹤一對等式轉接網路中的連接。
- 53一種儲存在一有形體之儲存媒體上的電腦程式,用於在一適用於對等式轉接網路的對等系統中使用,該程式包括促使一電腦執行下列動作的可執行指令:在一對等式轉接網路中轉接資料至該對等系統所連接的任何其他對等系統;建置一對等式轉接網路;加入一對等式轉接網路;連接至一對等式轉接網路中的其他對等系統;維護一對等式轉接網路;以及在一對等式轉接網路中切斷其他對等系統與該對等系統之間的連接。
Independent claims53
183 paragraphs, as filed
Peer-to-peer switching network
This application claims the rights of U.S. Provisional Patent Application No. 60/513,098 filed on October 20, 2003, the full text of which is incorporated herein by reference.
The present invention relates to the field of networking, specifically, the present invention relates to a peer-to-peer switching network.
In a typical client-server network, each client in the network will establish a connection to a central server. A client requests services and data from the server. In order to communicate with other clients, a client sends a request to the server. Generally speaking, the client will not establish a direct connection to another. In a master-slave network with N clients, each client has 1 connection to the server, and the server has N corresponding connections to each client. For example, as shown in Figure 31A, in a master-slave network with 6 clients, each client has 1 connection to the server, and the server has 6 corresponding connections to each client. connect.
In a typical peer-to-peer network (or "P2P network"), each member (or peer) in the peer-to-peer network will establish a connection to a respective other member . Each member uses these direct peer-to-peer connections to directly send data to and request data from other members instead of using a central server (for example, as opposed to a master-slave network in which members interact through servers). Generally speaking, each member of the network bears similar network responsibilities, and each member is generally regarded as the same level (as a network member). In a peer-to-peer network with N peers, each peer has N connections to other peers. For example, as shown in Figure 31B, in a peer-to-peer network with 6 peers, each peer has 5 connections to other peers.
In some peer-to-peer networks, each member also uses a server based on certain centralized services, such as address search (for example, to build a connection for establishing the peer-to-peer network).
The present invention provides a method and device for implementing peer-to-peer switching. In one implementation, a peer-to-peer switching network includes: a plurality of N peer systems; wherein each peer system is connected to a number of other peer systems, and the number of connections is less than or equal to an upper connection limit, the The upper limit of connection is greater than or equal to 2, the upper limit of connection is less than or equal to N-2, and each peer-to-peer system is configured to transfer data to that according to a transfer rule group consisting of one or more transfer rules Multiple peer-to-peer systems connected by a peer-to-peer system.
In another implementation, a server suitable for a peer-to-peer switching network includes: building components for building a peer-to-peer switching network; adding components for adding a peer-to-peer system to A pair of equation switching network; a maintenance component, used to maintain a pair of equation switching network; and a tracking component, used to track the connection in a pair of equation switching network.
In another implementation, a peer-to-peer system suitable for a peer-to-peer switching network includes: a switching component for switching data in the peer-to-peer switching network to the one connected to the peer-to-peer system Any other peer-to-peer system; build component, used to build a pair of equality transfer network; join component, used to join a pair of equality transfer network; connection component, used to connect to a pair of equality transfer Connect to other peer systems in the network; maintain components, used to maintain the one-to-one equation switching network; and cut off the connection components, used to cut off other peer systems and The connection between the peer-to-peer systems.
In another implementation, a method for transferring data in a peer-to-peer switching network includes: in a peer-to-peer switching network, receiving a connection from a peer-to-peer system at a switching end Data of the sending end peer system of the transfer end peer system; apply the transfer rule set consisting of one or more transfer rules, thereby selecting the transfer rule set consisting of one or more transfer rules Instructed zero or more peer systems to transfer the data to the selected peer system; and to transfer the data to any pair selected by applying the transfer rule set consisting of one or more transfer rules Waiting for the system.
In another implementation, a method for adding a peer-to-peer system to a peer-to-peer system includes: opening a connection between a server and a peer-to-peer system; providing a grid (grid) information to the joining end-to-peer system, the grid information indicates one or more established peer-to-peer switching networks; receiving from the joining end-to-peer system indicates a selected peer The grid option of the transit network, the selected peer-to-peer transit network has one or more member peer systems; provide the corresponding network addresses of the one or more member peer systems to the join Peer-to-peer system; and receiving a connection update from the joining peer-to-peer system, the connection update indicating the member peer system to which the joining peer-to-peer system is connected; wherein each member peer system is connected to several other peer-to-peer systems For member peer-to-peer systems, the number of connections is less than or equal to a connection limit, and each member peer-to-peer system stores a transfer rule group consisting of one or more transfer rules, so as to transfer data to the member's peer-to-peer system. Other connected members are peer-to-peer systems.
In another implementation, a method of joining a one-to-one equality switching network includes: in a one-to-one equality switching network, sending a joining message from a joining end-to-peer system to one or more members Each member peer system in the peer-to-peer system; at least one member peer system from the one or more member peer systems receives a join response, where each join response is affirmative or negative, and a positive join The response indicates that the sender member peer system has an available connection, and a negative join response indicates that the sender member peer system does not have an available connection; select according to a transfer rule group consisting of one or more transfer rules One or more member peer systems, the maximum number of selected member peer systems does not exceed a connection limit; open a connection to each selected member peer system; where each member peer system is connected to Several other member peer-to-peer systems, the number of connections is less than or equal to the upper limit of the connection, and each member peer-to-peer system stores a transfer rule group consisting of one or more transfer rules to transfer data to the member pair Other members connected to the peer-to-peer system.
In another implementation, a method for building a peer-to-peer network includes: opening a connection between the server and a built-in peer-to-peer system, wherein the built-in peer-to-peer system Is one of the member peer-to-peer systems; sends a request for establishing the peer-to-peer switching network to the server from the establishment end-to-peer system; receives a request from the establishment end-to-peer system Confirmation of the establishment of the server; where the peer-to-peer system on the establishment side stores an upper connection limit, which defines the number of other peer systems that the peer-to-peer system on the establishment side is allowed to connect to, so as not to exceed the upper limit of the connection, and The establishment peer-to-peer system stores a transfer rule group consisting of one or more transfer rules, thereby transferring data to other peer systems connected to the establishment peer-to-peer system.
In another implementation, a method of connecting multiple peer-to-peer systems in a peer-to-peer switching network includes: in a peer-to-peer switching network, if a disconnected peer system connects to a member When the number of connections in the open peer system is less than a connection limit, the disconnected peer system sends a connection availability message to one or more member peer systems; from the one or more member peer systems at least A member peer system receives a connection available response, where each connection available response is affirmative or negative, and an affirmative join response indicates that the sender member peer system has an available connection, and a negative join response indicates the sender The member peer system does not have an available connection; according to a transfer rule group consisting of one or more transfer rules, select a member peer system; open a connection to the selected member peer system; each member The peer-to-peer systems are all connected to several other member peer-to-peer systems, the number of connections is less than or equal to the upper limit of the connection, and each member peer-to-peer system stores a transfer rule group consisting of one or more transfer rules, thereby Transfer data to other member peer systems connected to the member peer system.
In another implementation, a method of maintaining a one-to-one equation switching network includes: in a one-to-one equation switching network, sending a maintenance message from a peer-to-peer system to a peer-to-peer system connected Each connected peer system of one or more connected peer systems; evaluate any response received from the one or more connected peer systems; if the response from a connected peer system is unacceptable, The connection between the peer system and the connected peer system is closed; each peer system is connected to several other peer systems, the number of connections is less than or equal to a connection limit, and each pair The other systems will store a transfer rule group consisting of one or more transfer rules, so as to transfer data to other peer systems connected to the peer system.
The present invention provides a method and device for implementing peer-to-peer switching. In one implementation, multiple computer systems are connected to form a pair of equality networks. Each computer system is connected to the maximum number of other computer systems determined in advance. For communication, a computer system sends a message to each connected system. When a computer system receives a message from another computer system, the receiving computer system will send or transfer the message to the other computer system according to the transfer procedures or rules of the peer-to-peer transfer network. Follow these transfer rules to spread the message to all member computer systems throughout the network.
FIG. 1 depicts an implementation diagram of a peer-to-peer switching network 100. A pair of equation switching networks can also be referred to as a "grid". In Figure 1, a system consists of 10 peer-to-peer systems 105<sub>A...J</sub>(It can also be called "peers") groups are connected to form a pair of equation switching networks. Each peer-to-peer system 105 is a game console with network functions, for example, the PlayStation 2 with network card sold by Sony Computer Entertainment Inc.<sup>TM</sup>Game console. The peer-to-peer systems 105 can be connected directly (for example, wired connection or wireless connection) or indirectly (for example, through an internal network or a public IP network such as the Internet). In one implementation, UDP or TCP connections are used to connect the peer-to-peer systems 105. The peer-to-peer systems 105 exchange data to support a network environment or activity, such as a conversation environment or an online game.
Each peer system 105 also has a connection to a central server 110, for example, a UDP or TCP connection via the Internet (the connection to the server 110 is not depicted in FIG. 1). The server 110 is a server computer system for providing centralized services for multiple connected peer-to-peer systems 105. In one implementation, the server provides a directory of peer-to-peer system addresses and tracks the peer-to-peer systems to which the server is connected. Examples of other server services include (but are not limited to) the following items: authentication, player matching, and tracking peer-to-peer system addresses. As mentioned above, in some implementations, the server can support multiple independent or related peer-to-peer switching networks. In one implementation, the server supports multiple environments or worlds, divides or groups clients into these environments, and filters data appropriately. In one implementation, the server includes one or more of the aspects described in the following jointly pending and jointly assigned U.S. patent applications: U.S. Patent Application No. 10/ with application date (The title is "Configuration Switching: Dynamically Changing Between Network Communication Architectures"; U.S. Patent Application No. 10/ (titled "Multi-User Application Programming Interface") dated _________; these applications are incorporated herein by reference. In another implementation, these pairs Such systems do not use a centralized server (for example, to build a grid through direct communication and data transfer).
The upper limit of network 100 connections is 3. The upper connection limit is set by the server and defines the maximum number of connections allowed by each peer system 105 in the grid. In another implementation, a peer-to-peer system (for example, a peer-to-peer system that builds the grid) sets the upper limit of connections, or multiple peer systems negotiate the upper limit of connections. In FIG. 1, the upper limit of the connection is 3, and each peer system 105 has 3 connections. Peer-to-peer systems A to J each have 3 connections to other peer-to-peer systems (peer-to-peer systems 105<sub>A</sub>It can also be referred to as peer system A or peer A). The network 100 is a 3-connection peer-to-peer switching network, so each peer system 105 has 3 connections to other peer systems.
The peer-to-peer systems 105 communicate by broadcasting messages throughout the network 100. The way in which the peer-to-peer systems 105 propagate messages is to forward the received messages to the connected peer-to-peer systems 105 according to the transfer rules of the network 100. In this implementation, the transfer rules define that the peer system 105 transfers a message to each peer system 105 connected to the peer system 105. Two exceptions are: (i) the peer system 105 It will not forward messages that it has already forwarded; and (ii) the peer-to-peer system 105 will not return a forwarded message to the peer-to-peer system 105 that belongs to the source of the message received by the peer-to-peer system 105 of the forwarding end. In one implementation, the peer-to-peer system 105 also does not forward a message to the peer-to-peer system 105 where the forwarding peer-to-peer system 105 has received the message from there (for example, in the forwarding peer-to-peer system 105 Before the message has been transferred, the transfer end peer system 105 receives the message from multiple peer systems 105). In other implementations, different or additional rules can be used. The transfer rules (and other rules) are built by the server and are preset in the peer-to-peer systems (or preset in the system software of the peer-to-peer systems). In another implementation, the rules can be modified dynamically, for example, by propagating messages with rule updates throughout the grid.
In an application of the network 100, the peer-to-peer systems 105 are playing online games. During the game, the peer-to-peer system 105 generates an update message to reflect the action or event triggered by the peer-to-peer system 105. For example, during the execution of game software on a players computer system (for example, peer-to-peer system A), the computer system will generate updated data for other players computer systems to use the updated data to represent actions such as moving or shooting (That is, update the player position). In order for the update to take effect, each peer system 105 must receive the update from the update peer system 105. The peer-to-peer systems 105 forward the update message throughout the network 100, thereby propagating the message to each peer-to-peer system 105.
In one example, peer-to-peer system A has an update to be transmitted to other peer-to-peer systems. Peer-to-peer system A builds: an update message containing the update data; an identification item indicating that peer-to-peer system A is the source of the update; and a sequence of identification items that are used to distinguish the peer-to-peer system A The sent message is the same as the message sent by other peer-to-peer systems, and a related sequence is also provided. Peer-to-peer system A sends the message to its connected peer-to-peer systems: B, C, D. Peer-to-peer system B transmits the message received from peer-to-peer system A to peer systems D and E. Peer-to-peer system B will not send the message to peer-to-peer system A, because peer-to-peer system B receives the message from peer system A. Similarly, the peer system C transmits the message received from the peer system A to the peer systems G and H; and the peer system D transmits the message received from the peer system A to the peer systems B and G. When the peer-to-peer system B receives the message from the peer-to-peer system D, the peer-to-peer system B will not forward the message again, because the peer system B recognizes that it is the same message (using the identification item of the message to give Identification). Similarly, the peer-to-peer system D will not forward the message received from the peer-to-peer system B. Assuming that the connection between peer-to-peer systems takes substantially the same amount of time to forward a message between peer-to-peer systems, in the next set of transfers, peer-to-peer system E forwards the message from peer-to-peer system B to the peer-to-peer system F and I, peer-to-peer system G forwards messages from peer-to-peer system C to peer-to-peer systems D and F (or forwards messages from peer-to-peer system D to peer-to-peer systems C and F, depending on the first arrival Wait for the message of the system C), and the peer system H forwards the message from the peer system C to the peer systems I and J. At this point, each peer system has received the update message from peer system A. However, the peer-to-peer systems F, I, and J have just received the message, so these peer-to-peer systems will forward the message. Peer-to-peer system F forwards messages from peer-to-peer system E to peer-to-peer systems G and F (or forwards messages from peer-to-peer system G to peer systems E and J, depending on the message that arrives first), System I forwards messages from peer system E to peer systems H and J (or forwards messages from peer system H to peer systems E and J, depending on the message that arrives first), and The peer system J forwards the message from the peer system H to the peer systems F and I. At this point, all peer systems have sent or forwarded the message once. Because these peer-to-peer systems will not forward the same message again, the dissemination of this message is ended.
In this method, the message is propagated throughout the peer-to-peer network 100. The practice of disseminating updated information among peer-to-peer systems 105 participating in the game supports the game and the game environment. The peer-to-peer systems 105 can distribute data throughout the network 100 without using a centralized server 110 for distribution. In addition, each peer system 105 does not connect to all other peer systems 105, thereby saving resources. As a result, the grid 100 limits the network bandwidth requirements of each peer-to-peer system (because each peer-to-peer system only needs to communicate with a limited number of other clients), while allowing data from any single client to be quickly spread to All other peer-to-peer systems in the grid ((for example, using UDP sockets).
In other implementations, a peer-to-peer switching network includes more or smaller peer-to-peer systems, and the network has a different upper connection limit. According to the number of peer-to-peer systems, the upper limit of the connection, and the rules for establishing connections, not all peer-to-peer systems have occupied all the connections they belong to, so there may be one peer-to-peer system (or more peer-to-peer systems) with an available connection.
In another implementation, the upper limit of the connection can be changed. In one implementation, the upper connection limit is a value unique to each peer system, so some or all peer systems have different connection upper limits, or any peer system does not have a connection upper limit. Each peer system sets its own connection limit, or a server assigns the connection limit of the peer system. In an example, the upper limit of the connection of the peer system X and Y is 5, the upper limit of the connection of the peer system Z is 4, and the upper limit of the connection of the other peer systems is 3. In another implementation, the upper limit of the connection is a dynamic value. In this case, the server adjusts the connection upper limit of the peer-to-peer systems, for example, according to network performance (for example, when the network traffic is low, the connection upper limit is also low). In another implementation, one or more of the peer-to-peer systems dynamically adjust its corresponding upper limit of connection. Or, the server dynamically adjusts the connection limit of a particular peer-to-peer system.
FIG. 2 depicts a block diagram of the implementation of the message 205. The message 205 is a message built by the peer-to-peer system to be sent to other peer-to-peer systems in the peer-to-peer switching network. For example, referring to FIG. 1, when the peer system A has an update message to be sent to other peer systems, the peer system A will build a message (for example, the message 205). The message 205 includes address data 210, a message origin identification item 215, a sequence value 220, and payload data 230. The addressing data 210 includes network address information, which is used to transmit the message 205 from the peer-to-peer system to other peer-to-peer systems. In one implementation, the addressing data 210 includes a sending end peer-to-peer system IP address and a predetermined receiving end peer-to-peer system IP address. The message origin identification item 215 identifies the peer-to-peer system where the message 205 is built. The message origin identification item 215 indicates to the peer systems in the entire network 100 the origin of the message propagated through the network. Using the message origin identification item 215, the peer system that receives the message 205 can determine which peer system in the network the message 250 originated from. The sequence value 220 identifies the specific message 205 and provides related sequence information. Using the sequence value 220, a peer system that receives the message 205 can determine whether a specific message has been received, and can determine the sequence or sequence of messages sent by the peer system indicated by the message origin identification item 215. The data 230 is the payload data of the message 205. For a message (for example, in a game), the payload data 230 is the update data to be used by the receiving end peer-to-peer systems. In alternative implementations, different types of messages may be used, and messages in a format different from that shown in FIG. 2 (for example, including different or additional information) may be used. For example, a message can include a file or a file part, or a data frame, for example, a game data frame or an audio file frame or part sent to a grid member. The receiving peer systems can use the sequence value contained in each message to reconstruct the entire file. In another example, a message includes additional identification information, for example, an identification item used to indicate the grid to which the message belongs, so that the peer-to-peer system belonging to the multi-grid can forward the message.
FIG. 3 depicts a flow chart 300 of the implementation of message forwarding in a peer-to-peer system in a peer-to-peer switching network. Initially, the peer-to-peer system is connected to other peer-to-peer systems in the peer-to-peer switching network.
The peer-to-peer system receives a message from the sender peer system through a connection between the peer system and a sender peer system (step 305). The message includes a message origin identification item, a sequence value, and payload data (for example, update data), just like the message shown in FIG. 2.
In step 310, the peer-to-peer system selects a connection for forwarding the received message. The peer-to-peer system selects a connection from the available connections of the peer-to-peer system according to the transfer rules of the peer-to-peer switching network. After applying the transfer rules, the peer system has selected some, none, or all connections of the peer system.
In step 315, the peer-to-peer system forwards the message to each selected connection. The peer-to-peer system builds a message for each selected connection. For each message to be sent, the peer-to-peer system uses the received message, but updates the address information appropriately (for example, changing the sender to the peer system, and the receiver to the connected receiver End-to-peer system). Accordingly, the effective load data remains unchanged. In another implementation, the peer-to-peer system can also add data to the message or change the data in the message. The peer-to-peer system sends the build messages to the appropriate receiving end.
FIG. 4 depicts an implementation flow chart 400 of a peer-to-peer system in a peer-to-peer switching network to transfer messages according to a set of transfer rules. The transfer rule used in Figure 4 is an example of a set of transfer rules. Other implementations may use different or additional transfer rules. Initially, the switch-end peer-to-peer system is connected to N other peer-to-peer systems in the pair-equal switch network. For example, in the network shown in Figure 1, the peer-to-peer system D is connected to 3 other peer-to-peer systems (so, in this case, N=3). The transfer rules for transferring a message shown in Figure 4 are: 1. The message will not be transferred twice 2. The message will not be transferred back to the sender 3. The message will not be transferred to the origin of the message The peer-to-peer system 4. After applying rules 1 and 2, forward the message to those peer-to-peer systems on the available connections
In step 405, the transfer end peer-to-peer system receives a message. In step 410, it is determined whether the transfer end peer system has ever received the message. The transfer end peer system compares the identification data of the message with the identification data of the message received by the transfer end peer system. In one implementation, each peer-to-peer system maintains a received message table, which is composed of a plurality of received message origin identification items and message sequence values. The transfer end peer system retrieves the message origin identification item and sequence value in the received message, and compares the retrieved data with the data stored in the received message table of the transfer end peer system. If the transfer end peer system determines that the received message has been previously received (for example, the transfer end peer system finds that an item in the received message stores the message origin identification item and sequence value of the received message ), the peer-to-peer system of the transfer end will not transfer the received message. In another implementation, the transfer end peer system checks to determine whether the transfer end peer system has previously transferred the received message.
In step 412, if the transfer end peer system determines that the transfer end peer system has not previously received the message, the transfer end peer system will record that the message has been received. In one implementation, the transfer end peer system adds an item to the received message list of the transfer end peer system, and the item is composed of the message origin identification item and sequence value of the received message . If there is an item consisting of the message origin identification item and the sequence value in the received message table, the transfer end peer-to-peer system will not change the received message table.
After recording the received message, in step 415, the transfer end peer-to-peer system sets a counter. The transit peer system uses the counter to process each available connection of the transit peer system step by step. In one implementation, the switching end peer-to-peer system sets an integer counter i to 1.
In step 420, the transfer end peer system determines whether the transfer end peer system receives the message from the peer system connected to the connection indicated by the counter. The received message includes address information for indicating the sender of the received message. The counter indicates a connection, and also indicates a connected peer system and the address information of the peer system. For example, peer-to-peer system D in Figure 1 has 3 connections, and peer-to-peer system D has assigned a number for each connection: peer-to-peer system A is connected to connection 1; peer-to-peer system B is connected to connection 2; and Wait for system G to be connected to connection 3. Therefore, when the counter i is 1 , the peer system D compares the address information (transmitting end) of the received message with the address information of the peer system A stored by the peer system D to check the received message Is the message sent by the peer system A? If the received message is sent from the peer-to-peer system connected to the connection indicated by the counter to the transfer-end peer system, the transfer-end peer system will not transfer the message to the peer-to-peer system.
If the received message is not sent from the peer-to-peer system connected to the connection indicated by the counter to the peer-to-peer system of the transfer end, the peer-to-peer system of the transfer end determines that it is connected to the peer system of the connection indicated by the counter Whether it is the message originating peer system of the received message (step 422). The received message includes information indicating the message origination peer system of the received message (the peer system that originally generated the message data, that is, the message origin identification item 215 in FIG. 2). If the peer system connected to the connection indicated by the counter is the message originating peer system of the received message, the transfer end peer system will not transfer the message to the peer system.
If the received message is not sent from the peer system connected to the connection indicated by the counter to the forwarding peer system, and the peer system connected to the connection indicated by the counter is not the message origin of the received message In the peer-to-peer system, in step 425, the transfer end peer-to-peer system transfers the message to the connected peer system. The transfer end peer-to-peer system builds a message for the indication connection. The forwarding end peer system makes a copy of the received message, and updates the address information appropriately (for example, changing the sending end to the forwarding end peer system, and changing the receiving end to be connected to the indicated connection Peer-to-peer system). Accordingly, the effective load data remains unchanged. The transfer end peer-to-peer system transmits the setup messages to the connected peer-to-peer system through the instructed connection.
In step 430, the switching end peer-to-peer system determines whether all connections have been checked. The switching end peer-to-peer system compares the counter with the number of connections established by the switching end peer system in the peer-to-peer switching network. For example, the switch-end peer-to-peer system compares the counter i with the value of N (the number of connections held by the switch-end peer system). If the transfer end peer system determines that all connections have been checked, then the transfer end peer system has completed the transfer of the received message.
If the transit peer system has not checked all connections, then in step 435, the transit peer system increments the counter. For example, the transfer end peer-to-peer system sets the integer counter i to i+1. After incrementing the counter, the transfer end peer system determines whether the received message is received from a peer system connected to the connection indicated by the incremented counter, and returns to step 420.
As mentioned above, in other implementations, different, additional, or fewer transfer rules may also be used. In one implementation, the forwarding end peer system does not return the forwarding message to the transmitting end (for example, prompting the transmitting end to determine that the forwarding end peer system has not changed the data). In another implementation, the transfer end peer system does not transfer the message to the peer system marked as the origin of the message (for example, the peer system marked by the message origin identification item of the message). In another implementation, the transfer end peer system will not transfer the same message to the same connected peer system again. In another implementation, the peer-to-peer system selects a subset of available connections for forwarding the message, for example, the peer-to-peer system with the lowest response time and the highest response time. In another implementation, each peer system forwards the message to all peer systems connected to the peer system, and stores a hop count in the message, prompting the message to be forwarded only Connect a specific number of times. In another implementation, the peer-to-peer system transfers the same message a limited number of times (more than once).
FIG. 5 depicts an implementation flowchart 500 of building a peer-to-peer switching network. Initially, a peer-to-peer system and a server are deployed, such as the peer-to-peer system A and server 110 as shown in FIG. 1. In step 505, the peer-to-peer system opens a connection to the server. The peer-to-peer system is connected to the server, thereby building a pair of equality switching network (or "grid"), and the peer-to-peer system can be called a "builder" Peer-to-peer system" (establishing peer). The connection to the server may be a direct network connection or an indirect network connection. In one implementation, the peer-to-peer system is assigned to or joins and registers with a spatial sub-segment or one of multiple domains or environments maintained by the server. The server authenticates the peer-to-peer system before allowing the peer-to-peer system to interact further. In step 510, the peer-to-peer system submits a grid creation request to the server. The grid creation request indicates the identification information of the peer-to-peer system, and indicates that the peer-to-peer system is requesting the server to build a new peer-to-peer switching network. In one implementation, the grid establishment request also includes the conditions that the peer-to-peer system requires the server to apply (for example, restrictions on joining the grid). In another implementation, the grid creation requirement indicates a connection upper limit and a set of rules (for example, transfer rules and connection rules) used in the grid. In step 515, the server registers the new grid. The server maintains multiple tables or lists for tracking the constructed grids. The server will create a new table for the new grid and add the requesting peer-to-peer system to the table. In step 520, the server sends a confirmation that the grid has been built to the peer system. The confirmation includes any identification or access information required by the peer system to access the grid. In one implementation, the confirmation includes the connection limit of the grid and any identification or access information (for example, transfer rules) required by the peer-to-peer system to access the grid.
FIG. 6 depicts a flowchart 600 of an implementation of connecting a peer-to-peer system to a peer-to-peer equation switching network. Initially, a peer-to-peer system and a server (such as the peer-to-peer system A and the server 110 shown in FIG. 1) have been used to build a peer-to-peer switching network.
In step 605, the peer-to-peer system connects to the server. The peer-to-peer system is connected to the server, thereby adding a pair of equality switching network (or "grid"), and the peer-to-peer system can be called a "new peer-to-peer system" (new peer) or "joining peer" (joining peer). The connection to the server may be a direct network connection or an indirect network connection. In one implementation, the peer-to-peer system is assigned to or joins and registers with a spatial sub-segment or one of multiple domains or environments maintained by the server. The server authenticates the peer-to-peer system before allowing the peer-to-peer system to further interact.
In step 610, the peer-to-peer system selects a grid from the available grids of the server. In one implementation, the peer-to-peer system requires a list of available grids, and a grid is selected from the list. In another implementation, when the peer-to-peer system connects to the server, the server automatically provides the list of available grids. In one implementation, the server provides a list of available grids applicable to the domains registered by the peer-to-peer system. The server also provides additional information to assist in selection (for example, it has become a peer-to-peer system for each grid member). The peer-to-peer system submits the grid selection item to the server.
In step 615, the server sends the address of the peer system that has joined and selected the grid. The addresses indicate how to communicate with the grid members (e.g., IP addresses). These addresses are also used to establish peer-to-peer connections with grid members instead of establishing connections through servers. If the selected grid has restricted access rights and the new peer system is not allowed to join the selected grid, the server will not provide the addresses to the peer system, nor Provides relevant information for the peer system to select a different grid. In one implementation, the server provides the connection limit and rules of the selected grid, together with the addresses to the new peer system.
In step 620, the new peer-to-peer system sends a join message to each grid member. The join message indicates the address of the new peer system and indicates that the peer system is a new member of the grid. In another implementation, the new peer-to-peer system sends a connection available message that indicates the address of the peer system and the number of connections available to the peer system (similar to when the peer system loses When connected, as described below). In another implementation, the new peer-to-peer system sends a join message to a grid member, and the grid member starts to forward the join message through the grid.
In step 625, the grid members receive the joining message, and each grid member returns a joining response to the new peer-to-peer system. A join response indicates whether the responding end has any available connections to the peer system. An affirmative response indicates that the responder has an available connection to the peer-to-peer system. A negative join response indicates that the responder's peer system does not have an available connection. The responding peer system records the address of the new peer system from the join message, and uses the address to send the join responses. The new peer-to-peer system receives these join responses.
In step 630, the new peer-to-peer system selects the grid members to be connected. The new peer-to-peer system uses a set of connection rules to select the peer-to-peer system to be connected. For example, in one implementation, the new peer-to-peer system selects several peer-to-peer systems from the positive responses sent by the peer-to-peer systems in the order of the positive responses received by the new peer-to-peer system. The maximum number of peer-to-peer systems does not exceed the upper limit of the connection of the grid (for example, if the upper limit of connection is 3, the new peer-to-peer system selects the peer-to-peer system corresponding to the first three positive responses received ). Different implementations can use different sets of connection rules. The new peer system stores the response time of each selected peer system. In another implementation, the new peer-to-peer system stores the response time of all responses (positive and negative).
After selecting the peer system to be connected, in step 635, the new peer system opens the connection to the selected peer systems. The new peer-to-peer system sends a connection request to each of the selected peer systems, and the selected peer systems confirm the connection request and open the connections (unless the connections of the selected peer systems have been Becomes unavailable). The connections between these peer-to-peer systems may be direct connections or indirect connections (for example, through networks such as the Internet). In one implementation, when a peer-to-peer system opens a connection, each peer-to-peer system informs the server of the connection.
In another implementation, the server forces one or more connections or promotes to join the grid. The server can prompt a peer-to-peer system to close a connection and open a connection to another instructed peer-to-peer system. The server can also cause the peer system to close one or more of its own connections.
FIG. 7 depicts a flowchart 700 of an implementation of selecting multiple peer-to-peer systems to join the one-to-equality switching network, as shown in step 630 of FIG. 6. Initially, a new peer-to-peer system selects a grid and sends out multiple join messages to the member peer-to-peer systems of the grid. The new peer-to-peer system receives the join response of the member peer-to-peer system replies.
In step 705, the new peer system selects the peer system corresponding to the first affirmative response received. This affirmative response is the response received before other affirmative responses, and represents the fastest available connection. In step 710, the new peer-to-peer system selects the peer-to-peer system corresponding to the last affirmative response received. This affirmative response is the response received after other affirmative responses, and represents the slowest available connection. In order to determine the final response, the new peer-to-peer system waits until all responses have been received, or waits for a defined period of time, and then declares the last response received during that period as the last response. In step 715, the new peer-to-peer system randomly selects peer-to-peer systems from the remaining positive responses until the peer-to-peer system selected by the new peer-to-peer system is equal to the upper limit of connection. These options support fast connections and slow connections in evenly distributed grids.
As mentioned above, in various implementations, different or additional connection rules can be used. In one implementation, the new peer-to-peer system selects the peer system with the first affirmative response and the peer system with the last affirmative response, and then selects the corresponding affirmative response in increasing order of response time (after the first affirmative response) The responding peer system. In another implementation, the new peer-to-peer system selects the peer-to-peer system when the response arrives (for example, reserves a space for the last affirmative response received) instead of waiting to start selecting the peer-to-peer system. In another implementation, the new peer-to-peer system uses a response time threshold to select a peer-to-peer system (for example, does not select a peer-to-peer system with a response time higher than a certain upper limit). In another implementation, the new peer-to-peer system selects the peer-to-peer system based on the characteristics of the peer-to-peer system (using the information provided in the join response), such as storage capacity, processing speed, access level, or available functions .
In one implementation, the peer-to-peer system categorizes connections according to the selection procedure used to select the connection. For example, the peer-to-peer system stores information to indicate which open connections correspond to the join response received at the lowest response time, and indicate which open connections correspond to the join response received at the highest response time. According to the connection adjustment, the peer-to-peer system cuts off the connection and the new peer-to-peer system joins the grid, and the peer-to-peer system can adjust the stored connection classification.
In another implementation, the new peer-to-peer system uses the server to assist in opening the connection. In one implementation, the server provides a list of grid members with available connections and peer system addresses of those members. The new peer-to-peer system directly sends the join messages to the instructed grid members.
If the number of positive responses is less than the upper limit of the connection, the new peer-to-peer system has the remaining connections available. In one implementation, the new peer system can force other peer systems to close an established connection and open a connection to the new peer system.
FIG. 8 depicts an implementation flowchart 800 for forcing a peer-to-peer system to provide a connection to a new peer-to-peer system in a peer-to-peer switching network. Initially, a new peer-to-peer system selects a grid and sends out multiple join messages to the member peer-to-peer systems of the grid. The new peer-to-peer system receives the join response of the member peer-to-peer system replies. However, after selecting all peer-to-peer systems that responded positively, the new peer-to-peer system still has an available connection.
In step 805, the new peer system selects a peer system corresponding to the negative response. The new peer-to-peer system uses the same connection rule as the positive response to select a negative response (for example, the first received negative response is selected according to the rule of FIG. 7). Alternatively, the new peer-to-peer system uses a different set of mandatory connection rules. The new peer system will not select the peer system to which the new peer system is connected.
In step 810, the new peer system transmits a mandatory connection request to the selected peer system. The mandatory connection request indicates that the new peer-to-peer system has at least one available connection (or explicitly indicates the number of available connections), and instructs the receiving end peer system to open a connection to the new peer-to-peer system.
In step 815, the new peer-to-peer system receives the mandatory connection request and selects a connection to be closed. The receiving peer-to-peer system uses the opposite connection rule to select a connection to be closed. For connection rules based on response time, the receiving peer system uses the response time stored in the join response (and the connection available response, as described below). In one implementation, in order to select from peer systems that have been randomly selected, the receiving end peer system selects the last selected peer system, or randomly selects the peer system again. In another implementation, the receiving-end peer-to-peer system uses a different set of mandatory disconnection rules.
In step 820, the receiving end peer-to-peer system closes the selected connection. The receiving end peer system sends a close message to the peer system connected to the selected connection, and the two peer systems close the connection. Now, the peer-to-peer system connected to the selected connection has an available connection and sends a connection available message to the grid, as described below.
In step 825, the receiving end peer-to-peer system sends an acknowledgment to the new peer-to-peer system, and both of the two peer-to-peer systems open a new connection. Now, the new peer-to-peer system has at least one available connection. If the new peer-to-peer system has more available connections, the new peer-to-peer system repeats the procedure and returns to step 805 to select another negative response.
In another implementation, the new peer-to-peer system will not force other peer-to-peer systems to open a connection unless the new peer-to-peer system has at least two available connections. Alternatively, a different threshold value (e.g. 3) can be used. In another implementation, when the new peer-to-peer system does not have at least a certain number of connections (a lower connection limit), the new peer-to-peer system sends a mandatory connection message.
In another implementation, the receiving end peer system that receives a mandatory connection message has the option of rejection (for example, based on network load balancing). If rejected, the new peer-to-peer system selects other peer-to-peer systems, thereby sending a new mandatory connection message to these other peer-to-peer systems.
In another implementation, if the new peer-to-peer system has two or more available connections and is sending a mandatory connection message, the new peer-to-peer system will include in the message to indicate the new The peer-to-peer system has information about two or more available connections. When the receiving end peer system has selected a connection to be closed, the receiving end peer system indicates to the peer system (remote peer system) connected to the selected connection that the new peer system has other Available connections (and include the address of the new peer-to-peer system as needed). When the receiving end peer system has closed the connection with the remote peer system, the remote peer system directly sends a connection available message to the new peer system (unless the new peer system has Connect to the remote peer system). The new peer-to-peer system opens a new connection to the receiving end peer system (the peer system selected by the new peer system), and opens a connection to the remote peer system (the receiving end Wait for another new connection of the peer system selected by the system. In this method, the new peer-to-peer system can quickly establish two connections. If the new peer-to-peer system still has two other available connections, the new peer-to-peer system can send a mandatory connection message again to indicate the two available connections to other selected receiving peer systems.
If a peer-to-peer system disconnects from other peer-to-peer systems, each peer-to-peer system has an available connection. If one (or both) of the peer-to-peer systems is still in the grid (that is, the connection to the grid is not cut off), the peer-to-peer system will send a connection available message to the peer-to-peer system The other peer-to-peer systems connected to the grid, and forward the message to all other peer-to-peer systems in the grid through the grid.
FIG. 9 depicts a flowchart 900 of an implementation of disconnecting a connection in a pair of equation switching network. Initially, a peer-to-peer system (the disconnected peer-to-peer system) is connected to at least two other peer-to-peer systems in a pair of equation switching network.
In step 905, the disconnected peer system becomes disconnected from one of the peer systems originally connected to the disconnected peer system. The reason for the disconnection of the connection end is that either end of the connection spontaneously cuts the connection end, or the connection itself fails (for example, the path between the peer-to-peer systems partially fails). For example, a spontaneous disconnection of the connection will occur in the following situations: when a connected peer system does not respond (as described below); or when the peer system is forced to open a connection to the new peer system Time (as described below). In one implementation, the server can also cause the peer-to-peer system to close one or more connections due to the corresponding cut-off of the connection.
In step 910, the disconnected peer system transmits a connection available message to the remaining peer systems connected to the disconnected peer system. The connection available message indicates that the disconnected peer system now has an available connection. In another implementation, the connection available message indicates the number of connections available to the peer-to-peer system.
In step 915, the peer-to-peer system connected to the disconnected peer-to-peer system transfers the connection available message. In step 920, the peer-to-peer system in the grid returns a connection available response to connect to the peer-to-peer system at the disconnected end. A connection available response indicates whether there are any available connections for the responding peer system. An affirmative response indicates that the responding end has an available connection to the peer-to-peer system. A negative join response indicates that the responder does not have an available connection to the peer system. The responding peer peer system records the address of the new peer system from the join message, and uses the address to send the join responses. Alternatively, the responding peer systems return the responses to be transferred to the disconnected peer system through the grid. The disconnected peer system receives the connection available response.
In step 925, the disconnected peer system selects one of the grid members to be connected. The disconnected peer system uses the connection rules to select a peer system to connect to, but the disconnected peer system will not select the peer system that has been disconnected. Waiting for the system. For example, in one implementation, the disconnected peer system uses the response time available for the connection and the response time stored by the respective peer systems that are still connected to the disconnected peer system , To select a peer-to-peer system to replace the lost connection. Different implementations can use different sets of connection rules. The disconnected peer system stores the response time of each selected peer system. In another implementation, the disconnected peer system stores the response time of all responses (positive and negative). In one implementation, the disconnected peer system will not select a peer system that has been disconnected from the disconnected peer system within a certain period of time.
After selecting a peer system to be connected, in step 930, the disconnected peer system opens a connection to the selected peer system. The disconnected peer system sends a connection request to the selected peer system, and the selected peer system confirms the connection request and opens the connection (unless the selected peer system is connected Becomes unavailable). The connections between these peer-to-peer systems may be direct connections or indirect connections (for example, through networks such as the Internet). In one implementation, the connected peer systems send an update to confirm the connection to the server.
Similar to the implementation of adding a grid described above with reference to Figure 8, in one implementation, if the disconnected peer system tries to use a connection availability message to open a connection and still has an available connection (For example, because all connection available responses are negative), the disconnected peer system can send a mandatory connection message, as described above.
In another implementation, the disconnected peer system uses the server to assist in opening a new connection. In one implementation, the server provides a list of grid members with available connections and their peer system addresses. The disconnected peer-to-peer system directly sends the connection available messages to the indicated grid members.
The peer-to-peer systems in the grid maintain the grid by periodically polling each other. In one implementation, the connected peer systems periodically send messages to each other to confirm that the connection and the connected peer system are still operating.
Figure 10 depicts an implementation flow chart 1000 of maintaining a peer-to-peer switching network. Initially, multiple peer-to-peer systems are connected in a grid.
In step 1005, the peer-to-peer system sends a maintenance message to each peer-to-peer system connected to the peer-to-peer system. The maintenance message is a request for requesting the receiving end to provide a confirmation that the maintenance message has been received. In one implementation, the peer system sends a ping message (or pings) to each connected peer system. In step 1010, the peer-to-peer system evaluates the received maintenance message response. The peer-to-peer system determines whether the response meets the requirements. In one implementation, if a response is not received from a connected peer system, the peer system determines that the connection of the peer system has failed (it may be that the connection fails, or the connected peer system fails). If a response is received after a time limit expires, the peer-to-peer system determines that the connection of the peer-to-peer system has failed. In step 1015, the peer-to-peer system closes any connections that the peer-to-peer system has determined to be invalid. The peer-to-peer system transmits a request to close the connection on a failed connection to the peer-to-peer system of the connection. When the peer system receives the confirmation, the peer system closes the connection. If the peer system cannot communicate with the connected peer system on a failed connection, or does not receive a confirmation within a time limit, the peer system will close the connection without confirmation. In another implementation, the peer-to-peer system waits to close a connection until the connection has been designated as invalid after a period of time or a number of invalidations. In one implementation, the peer-to-peer system sends an update to the server to confirm any closed connections.
If the peer-to-peer system has closed any connections, the peer-to-peer system has voluntarily cut off the connection with one or more peer systems and sends an appropriate connection availability message (for example, as described above with reference to FIG. 9).
In another implementation, the peer-to-peer systems use the server to evaluate failed connections. For example, when the peer-to-peer system determines that a connection has failed, the peer-to-peer system sends an assistance request to the server. The server sends a message to the peer system at the other end of the failed connection, thereby confirming whether the peer system has failed or the connection has failed. The server then notifies the peer systems, thereby facilitating the opening of new connections or adjusting the network as needed.
Figures 11 to 18 depict examples of implementation of building, adjusting, and maintaining a grid.
In Figure 11, the peer-to-peer system 1105<sub>A</sub>(Peer-to-peer system A) A server 1110 (the connection between the peer-to-peer system A and the server 1110 is not depicted in the figure) has been used to build a pair of equation switching network (grid) 1100. The upper limit of the grid connection is 3, so the peer-to-peer system A has three available connections. In Figure 12, a second peer-to-peer system 1105<sub>B</sub>(Peer-to-Peer System B) has joined the grid 1100.
When peer system B joins, peer system B sends a join message to peer system A, and peer system A sends an affirmative join response to peer system B. Peer-to-peer system A and peer-to-peer system B open a connection.
In Figure 13, two peer-to-peer systems 1105<sub>C</sub>And 1105<sub>D</sub>(Peer-to-peer systems C and D) have joined the grid 1100. In the grid 1100, each of the four grid member peer systems A to D has established three connections to other peer systems. A new peer-to-peer system 1105<sub>E</sub>(New Peer-to-Peer System E) Join the grid. However, when the peer-to-peer system E sends a join message to other peer-to-peer systems, since each of the peer systems A to D already has the maximum number of connections allowed by the connection limit of the grid 1100, all join responses are otherwise . In Figure 14, the peer-to-peer system E has forcibly opened a connection. The peer system E selects the peer system B from the negative responses (for example, because the peer system E receives the response from the peer system B first), and sends a mandatory connection message to the peer system B. The peer system B selects the peer system D, thereby closing a connection and closing the connection with the peer system D. The peer system B confirms the connection with the peer system E, and the peer system B and the peer system E open a new connection. When the peer system B closes the connection with the peer system D, the peer system D has an available connection. The peer-to-peer system D sends a connection available message to the peer-to-peer systems A and C, and the peer-to-peer systems forward the message to the entire grid 1100. Peer-to-peer systems A, B, and C do not have available connections, and therefore send a negative response to peer-to-peer system D. The peer-to-peer system E has two available connections, and sends an affirmative response to the peer-to-peer system D. The peer-to-peer system D opens a connection with the peer-to-peer system E. The peer-to-peer system E still has an available connection, so it sends a connection available message. However, all responses were negative. The peer-to-peer system E has two established connections and only has one available connection, so the peer-to-peer system E will not forcibly open another connection.
In FIG. 15, the peer-to-peer system A cuts the connection with the grid 1100. Peer system A is connected to peer systems B, C, and D. When peer system A cuts the connection, peer systems B, C, and D each have an available connection. Peer-to-peer systems B, C, and D send out connection availability messages, and peer-to-peer systems B, C, D, and E each send an affirmative response. After evaluating the available responses of these connections, excluding existing connected peer systems, peer systems B to E establish connections, as shown in Figure 16. Now, the peer-to-peer systems B to E each have three connections.
In Figure 17, three new peer-to-peer systems 1105<sub>F</sub>、1105<sub>G</sub>And 1105<sub>H</sub>(Peer-to-peer systems F, G, and H) have joined the grid 1100 and a connection has been established. As part of the regular activities of maintaining the grid, peer systems B to H each send ping messages to their connected peer systems. For example, peer system B periodically pings peer systems D, E, and G. The peer system D does not provide a satisfactory response to the peer system B for the ping message of the peer system B (for example, the response from the peer system D is too slow or does not reach the peer system B). In Figure 18, peer system B has closed the connection to peer system D. When the peer system B closes the connection, the peer system B and the peer system D each have an available connection. The peer-to-peer systems B and D send out a connection available message to be forwarded through the grid 1100. Peer-to-peer system B receives positive responses from peer-to-peer systems G and D. The peer system B is already connected to the peer system G, so the peer system G will not be selected for a new connection. The peer system B has just cut off the connection with the peer system D due to a failed connection, so the peer system D will not be selected for a new connection. Peer system B will not open a new connection (peer system B has two open connections and only one available connection, so peer system B will not try to force a connection, but in other implementations, peer system B May try to force a connection). Peer-to-peer system D receives positive responses from peer-to-peer systems B and G. Peer-to-peer system B has just cut off the connection with peer-to-peer system D due to a failed connection, so peer-to-peer system D will not select peer system B for a new connection (or peer system B will reject a new connection request) . The peer system D selects the peer system G and opens a connection to the peer system G.
In the examples shown in FIGS. 11 to 18, the peer-to-peer system of the grid 1100 opens and closes the connection, thereby building and adjusting the grid, without the need to transfer on the server 1110 to manage the connection ( Although the server 1110 does help provide the address of the existing member peer system of a grid to a new peer system).
<b>Redundant list</b>
In one implementation, a peer-to-peer system in a grid reduces redundant messages by avoiding sending messages that are judged to be redundant based on the current path in the network.
In this implementation, each peer system in the peer-to-peer switching network stores a redundant list. The redundancy list of the peer system indicates that the peer system will not send messages originating from a designated peer system to the other peer systems indicated in the redundancy list. Accordingly, each item in the redundant list indicates a message originating peer system and a target peer system (connected to the switching end peer system). When a peer-to-peer system receives a message indicating that the originating peer system of a message is in the redundancy list of the peer system, the peer system will not forward the message to the corresponding item in the redundancy list The indicated peer system for the connection. In another implementation, the peer-to-peer systems can turn on and off the redundancy list function (for example, as required by a server, for example, after determining that a security problem has been caused).
FIG. 19 depicts an implementation flow chart 1900 of constructing a redundant list in a pair-equal switching network. Initially, multiple peer-to-peer systems are connected to form a pair-to-equal switching network. A receiving peer system is connected to at least two other peer systems.
In step 1905, the receiving end peer-to-peer system receives a redundant message from the peer-to-peer system. Since the receiving end peer-to-peer system once received the same message, the redundant message is redundant. The receiving end peer-to-peer system uses the information in the received message to recognize that the redundant message is the same message. As mentioned above, in some implementations, each peer-to-peer system maintains a list of received messages, thereby avoiding transferring the same message twice. The receiving end peer system can also use the list to identify a redundant message.
In step 1910, the receiving end peer-to-peer system constructs a redundant update message. The receiving-end peer-to-peer system includes information for identifying the origin of the message and information for identifying the receiving-end peer system in the redundant update message. For example, the receiving end peer-to-peer system retrieves the message origin identification item (for example, the message shown in FIG. 2) from the redundant message, and stores the message origin identification item in the redundant update message.
In step 1915, the receiver peer system receives the redundancy update message to the sender of the redundancy message. The redundant message includes the address information of the redundant message sender in its own address information.
In step 1920, the redundant message sender receives the redundancy update message and updates the redundancy list of the sender. The transmitting end retrieves the information used to identify the origin of the redundant message and the information of the receiving end (receiving end peer-to-peer system) of the redundant message from the redundant update message. The sending end adds an item to the sending redundancy list, which indicates that the sending end should not send a message originating from the message origin of the instruction to the receiving end peer system.
For example, referring to the grid 100 shown in FIG. 1, the peer system B receives messages from the peer system C from the peer systems A, D, and E. Assuming that peer system B first receives messages originating from peer system C from peer system A, the messages originating from peer system C received from peer systems D and E are redundant messages. Peer-to-peer system B constructs redundant update messages to be sent to peer-to-peer systems D and E. The redundant update messages indicate that peer-to-peer system C is the source of the message and peer-to-peer system B is the receiver. Peer-to-peer system B sends the redundant update message to peer-to-peer system D. Peer-to-peer system D updates its own redundancy list, thereby indicating that peer-to-peer system D will not forward messages originating from peer-to-peer system C to peer-to-peer system B. The peer-to-peer system E receives a similar redundancy update message from the peer-to-peer system B, and updates its redundancy list in a similar manner.
Since the peer-to-peer system will connect to and cut off the connection with the grid, the path between the clients will change, and the redundant list will become incorrect. Accordingly, when the peer-to-peer system cuts off the connection with the grid, the remaining peer-to-peer systems will update the redundancy list.
FIG. 20 depicts an implementation flow chart 2000 for updating the redundancy list of a disconnected peer system in a pair-equal switching network. Initially, multiple peer-to-peer systems are connected to form a pair-to-equal switching network. A disconnected peer system is connected to at least two other peer systems.
In step 2005, the disconnected peer-to-peer system disconnects the connection with the grid. The peer-to-peer systems that were previously connected to the peer-to-peer system of the disconnected end are now the peer-to-peer systems that have been disconnected. Those peer-to-peer systems that have been disconnected follow the same procedures below.
In step 2010, the disconnected peer-to-peer system constructs a clear redundant message. The clear redundant message indicates the information used to identify the disconnected peer system. In step 2015, the disconnected peer system sends a clear redundancy message to the peer system that is still connected to the disconnected peer system. In step 2020, the peer system that has received the clear redundancy message from the disconnected peer system updates the redundancy list to which it belongs. The peer system that receives the clear redundancy message will remove the items in the redundancy list of the peer system, and prompt the transfer message to the disconnected peer system indicated by the clear redundancy message to take effect.
Please refer to the example described above with reference to Figure 1 and Figure 19. The redundant list of peer system D has an item indicating that peer system D should not forward messages originating from peer system C to the peer. Wait for system B. If the peer-to-peer system A cuts the connection with the grid, the peer-to-peer system B recognizes the peer system A that cuts the connection, and builds a clear redundant message. Peer-to-peer system B sends a clear redundant message to peer-to-peer systems D and E. Peer-to-peer system D receives the clear redundancy message from peer-to-peer system B, and clears the item in the redundancy list of peer-to-peer system D. This item indicates that peer-to-peer system D should not be transferred from The message of the peer system C is sent to the peer system B. According to this, the next time the peer system D receives a message originating from the peer system C, the peer system D will forward the message to the peer system B again. The peer system E updates its own redundancy list in a similar manner.
<b>Multigrid</b>
In an implementation, a peer-to-peer system may belong to a multi-peer switching network. Each grid may be related or independent. The connections built according to each grid may be independent. Accordingly, a peer-to-peer system can be connected to one grid, but not in other grids (even if both peer-to-peer systems are in both grids). In one implementation, if two peer systems are connected in two grids, the peer systems will use a single connection. A message includes information for indicating the grid to which the message belongs. The peer-to-peer system transfers a received message according to the connection established by the grid corresponding to the message indication.
In one implementation, all members of a peer-to-peer switching network can create subnets within the peer-to-peer switching network. In this case, every member of a subnet is also a member of the larger grid. For example, a peer-to-peer switching network includes all players in a game as a peer-to-peer system, and each group (including a subset of the overall player) has a peer-to-peer system subnet (for example, for Private communication in the game). In this way, these peer-to-peer systems can build a multi-channel environment that is expected to distribute and receive data.
In another implementation, these peer-to-peer switching networks are all independent networks, but share one or more member peer-to-peer systems. For example, a group of peer-to-peer system groups can build a grid for supporting a meeting room or chat environment, and another group of peer-to-peer system groups including at least peer-to-peer systems in the first group can be built A grid used to support certain games. In another example, a group of peer-to-peer system groups constitutes an ethnic group (organization), and some peer-to-peer systems join or build other grids to play games.
For example, in an online environment, all peer systems in the environment are connected to a single primary grid. The main grid is used for general notifications and general services. Peer-to-peer systems create, join and leave additional smaller grids to access online services such as chat rooms or games. Before a smaller grid has been built, the peer-to-peer system can use the main grid to communicate, for example, when a new peer-to-peer system wants to join a grid (instead of using a server). Because all control messages can be broadcast through the main grid, all peer systems can independently maintain a list of available grids and a list of active peer systems in each network. In one implementation, the peer-to-peer systems do not use a centralized server.
FIG. 21 depicts a flowchart 2100 of an implementation of forwarding a message from a peer-to-peer system belonging to multiple grids. Initially, multiple peer-to-peer systems are connected to form two peer-to-peer switching networks. A transfer-end peer-to-peer system is a member of the two grids, and has corresponding connection and transfer rules for each grid.
In step 2105, the transfer end peer-to-peer system receives a message. The message includes a grid identification item for indicating the grid to which the message belongs.
In step 2110, the switching end peer-to-peer system selects the grid indicated by the received message. Each grid has a set of corresponding connections and a set of corresponding transfer rules. By selecting a grid, the transfer end peer system selects a set of connections and a set of transfer rules to be used to transfer the received message.
In step 2115, the transfer end peer-to-peer system selects a connection according to the selected grid and the corresponding transfer rules. Using the transfer rules of the selected grid, the transfer end peer system selects any applicable connection to be used to transfer the received message.
In step 2120, the transfer end peer system transmits the received message to the selected peer systems. Before transferring the message, the transfer end peer system adjusts the received message for each selected peer system, for example, to update the address information of the received message to indicate the transfer The peer-to-peer system is transferring the received message to the selected peer-to-peer system.
<b>Observer</b>
In one implementation, all peer-to-peer systems in a grid are classified as participating or observing ends. A participating peer-to-peer system generates new messages to be forwarded through the grid. An observer peer-to-peer system does not generate new messages and acts as a pass-through node in the grid. Participants and observers will transfer messages to their connected peer systems in accordance with the transfer rules of the grid. In some applications, each participating terminal may have many observation terminals. In an implementation with multiple participating terminals, each participating terminal has a connection to at least one other participating terminal.
In one example, a group of participants is playing an online game, and multiple observers observe (observe the data without changing the game data). The number of observation terminals may be very large (for example, thousands). Other examples include performance (e.g., music), language, and teaching. In some applications, because the peer-to-peer systems process distribution by transferring data, the load on a server used for distribution may not always increase as the number of observation terminals increases.
In one implementation, when a peer-to-peer system joins a grid, the peer-to-peer system joins the grid as a participant or an observer. If the peer-to-peer system joins the grid as an observer, it will not authorize the peer-to-peer system to create new messages, nor will it authorize the peer-to-peer system to send new messages to be forwarded through the grid. If an observation terminal generates a new message and sends the new message to the peer systems connected to the observation terminal, the peer systems that receive the new message from the observation terminal will not forward or forward the received message . In one implementation, part or all of the observation terminals can form another related grid as the participating terminal (for example, discussing the game observed in the first grid).
FIG. 22 depicts a flowchart 2200 of an implementation of forwarding a message in a grid supporting observers and participating terminals. Initially, multiple peer-to-peer systems are connected to form a peer-to-peer switching network that supports participants and observers. Each peer-to-peer system stores a list of peer-to-peer systems belonging to the participating end. In one implementation, the participating peer-to-peer systems periodically broadcast messages indicating the peer systems that are the participating peers. In another implementation, the server facilitates the identification of the participating terminals.
In step 2205, a transfer end peer-to-peer system receives a message. The message includes a message origin identification item indicating the peer-to-peer system that established the message.
In step 2210, the forwarding peer-to-peer system confirms that the message origin of the received message is a participating peer-to-peer system. The transfer-end peer-to-peer system stores a list of participating peer-to-peer systems. The transfer end peer system compares the peer system identified as the message origin of the received message with the participating end peer system list. If the message originating peer system of the received message is not a participating end (that is, it is an observing end), the transfer end peer system will not transfer the received message.
In step 2215, if the message originating peer system of the received message is a participating end, the transfer end peer system selects the connection according to the transfer rule of the grid. Using the transfer rules, the transfer end peer-to-peer system selects any applicable connection to be used to transfer the received message.
In step 2220, the transfer end peer-to-peer system transmits the received message to the selected peer-to-peer systems. Before transferring the message, the transfer end peer system adjusts the received message for each selected peer system, for example, to update the address information of the received message to indicate the transfer The peer-to-peer system is transferring the received message to the selected peer-to-peer system.
In another implementation, the observation terminals and the participating terminals are located in different grids. The observation ends constitute a parallel observation end grid linked to the participating end grid. The observation terminals receive the data from the participating terminals, and transfer the data in the grid of the observation terminal. The link between the grids can be provided by a server or gateway, or the link between the grids can be provided by the connection between peer systems selected from each grid.
In another implementation, an observation end may be a conditional observation end. A conditional observation terminal can request permission to generate data to be transferred through the grid. If the observation terminal has the receiving authority, the observation terminal can send a message that the peer system in the grid will transfer (for example, the message includes an authorization flag). The authority can be granted by a server, a selected peer-to-peer system as the arbitrator, or by the participating end(s). For example, in a teaching environment, the participating end is a lecturer, and the observing end may request permission to ask questions, and the questions raised will be forwarded to all peer systems.
<b>Peer System Islands Recovery (Island Recovery)</b>
In one implementation, the servers and peer systems in the one-to-equality switching network support the adjustment of connections in the grid, thereby avoiding or recovering the formation of peer-to-peer system islands. A group of isolated peer-to-peer system groups in a grid is called a peer-to-peer system archipelago. When multiple peer-to-peer systems have been disconnected substantially at the same time, a peer-to-peer system archipelago is formed in a grid. In the disconnection procedure described above, the remaining peer-to-peer systems will send messages indicating available connections. However, if there are multiple simultaneous disconnections, the remaining peer-to-peer systems will be An isolated group is formed in the grid. A peer-to-peer system in a peer-to-peer system archipelago cannot send a message to a peer-to-peer system in another peer-to-peer system archipelago because there is no peer-to-peer connection between these peer-to-peer system islands. The server detects whether there are peer-to-peer system islands, and interacts with the peer-to-peer system to remove the peer-to-peer system islands.
FIG. 23 depicts a flowchart 2300 of an implementation of detecting whether there are peer-to-peer system islands in a grid. Initially, multiple peer-to-peer systems are connected to form a pair of equality switching networks or grids. When these peer-to-peer systems open and close the connection, or become a disconnected peer system, the peer-to-peer system will notify the server of the grid of the changed connection. In this method, the server tracks all connections in the grid. The server also maintains a sorted list of peer systems in the grid.
In step 2305, the server sets a peer-to-peer system islands counter. The peer system islands counter indicates the number of peer system islands. In one implementation, the server sets a counter i to 1.
In step 2310, the server selects a starting peer-to-peer system. When the island counter of the peer system is 1, the server selects the first peer system in the sorted list of peer systems as the starting peer system. When the island counter of the peer system is greater than 1, the server selects the newly discovered unmarked peer system as the starting peer system (as described below).
In step 2315, the server marks each peer system connected to the start end peer system as belonging to the same peer system archipelago as the start end peer system. The server marks the peer-to-peer systems directly connected to the peer-to-peer system of the beginning and peer systems that are indirectly connected to the peer-to-peer system of the beginning through other peer-to-peer systems (e.g., travel from the peer-to-peer system to the connected Peer-to-peer systems, and travel from connected peer-to-peer systems to other connected peer-to-peer systems, and so on). The server marks the peer-to-peer system with the current value of the island counter of the peer-to-peer system, thereby indicating the peer-to-peer system island to which the peer system belongs.
In step 2320, after marking all the peer systems connected to the start-end peer system, the server determines whether there are unmarked peer systems in the grid. In one implementation, the server searches for an unmarked peer system in the entire sorted list of peer systems.
In step 2325, if the server finds an unmarked peer system, the server increments the peer system island counter. The server increments the peer system island counter, thereby indicating that an additional peer system island has been detected. After incrementing the peer system islands counter, the server returns to step 2310 and uses the discovered unmarked peer system as the starting peer system.
In step 2330, if the server does not find an unmarked peer system, the server will determine the number of peer system islands detected. The server has incremented the peer system island counter for each detected peer system island, so the peer system island counter represents the number of detected peer system islands. If the peer system islands counter is equal to 1, it means that a single peer system island has been found, and the grid is not divided into multiple peer system islands. If the peer system islands counter is greater than 1, the server has discovered multiple peer system islands, and the grid is divided into multiple peer system islands.
FIG. 24 depicts a flowchart 2400 of an implementation of removing a P2P archipelago in a one-to-one equation switching network. Initially, multiple peer-to-peer systems were connected in a pair-to-equal switching network or grid. The grid has been divided into two groups of peer-to-peer system archipelago, where none of the peer systems in one peer-to-peer system archipelago has a connection path to the peer system in another peer-to-peer system archipelago. The server has detected two peer-to-peer system islands, for example, using the procedure shown in Figure 23.
In step 2405, the server selects a peer-to-peer system from each peer-to-peer system archipelago. The server can select the first archipelago peer system and the second archipelago peer system in various ways. In one implementation, the server selects a peer-to-peer system with an available connection. In another implementation, the server randomly selects a peer-to-peer system in the archipelago of peer-to-peer systems.
In step 2410, if the first archipelago peer system does not have an available connection, the server sends a close connection message to the first archipelago peer system, thereby closing a connection. The first archipelago peer-to-peer system receives the message from the server, and selects a connection to be closed, and the selection method is the same as the method of selecting a connection to be closed when receiving a mandatory connection message, as described above. The first archipelago peer-to-peer system closes a connection and therefore has an available connection.
In step 2415, the server sends an initial mandatory connection message to the first archipelago peer-to-peer system. The initial mandatory connection message includes the address of the second archipelago peer-to-peer system. The first islands peer-to-peer system receives the message from the server and sends a mandatory connection message to the second islands peer-to-peer system.
In step 2420, the second islands peer-to-peer system receives the mandatory connection message from the first islands peer-to-peer system, and closes the selected connection. The method of closing the connection of the second archipelago peer-to-peer system is the same as the method of selecting a connection to be closed when receiving a mandatory connection message as described above. If the second archipelago peer system already has an available connection before closing a connection, the second archipelago peer system will not close any connection.
In step 2425, the first archipelago peer system sends a connection opening request to the second archipelago peer system, and both of the two peer systems open a connection. When the connection is opened, the peer-to-peer system islands have been added to form a single peer-to-peer system island. The peer-to-peer systems send an update to confirm the connection to the server. If there are additional peer-to-peer system islands (detected in the manner described above), the server returns to step 2405 to connect two or more other peer-to-peer system islands.
Figures 25 and 26 depict examples of detecting P2P islands and joining P2P islands. In FIG. 25, a grid 2500 (similar to the grid 1100 in FIG. 11) has been divided into two peer-to-peer system islands, because the peer-to-peer systems C, G, and F cut the connection at the same time. The first peer system archipelago includes peer systems A, B, D, and E. The second peer-to-peer system archipelago includes peer-to-peer systems H, I, and J. In Figure 26, the server has prompted the peer system D to open a connection to the peer system I, thereby joining the two peer system islands.
<b>safety</b>
In one implementation, the peer-to-peer switching network supports detection of spoofing violations or security violations or both, and supports recovery back to normal operation. Deception violations involve tampering with data to change the results of online activities, for example, affecting the game process. Security violations involve unauthorized data or inappropriate use of data, thereby destroying the grid or causing the grid to fail.
Figure 27 depicts an implementation flow chart 2700 for detecting a spoofing violation in a one-to-one equation switching network. Initially, multiple peer-to-peer systems are connected to form a pair of equality switching networks or grids.
In step 2705, the peer-to-peer system receives messages from each of its connected peer-to-peer systems. As mentioned above, the peer-to-peer systems in the grid will forward messages throughout the grid. The peer-to-peer system will receive the same message through each connection of the peer-to-peer system to which it is connected (the same content data, but the address information may be different). For example, if a peer-to-peer system has three open connections, the peer-to-peer system will receive the same message three times from the three corresponding peer-to-peer systems. The peer-to-peer system uses the information used to indicate the origin of the message and a sequence value (for example, the message source identification item 215 and the sequence value 220 in the message 205 shown in FIG. 2) to identify the messages as the same message. The same messages from different peer-to-peer systems will have the same message origin and sequence information.
In step 2710, the peer-to-peer system compares the messages received from the connected peer-to-peer systems. The peer-to-peer system compares the data part of the message, for example, the data 230 in the message 205 shown in FIG. 2. The peer-to-peer system determines that the data part of the message is different from the data part of any received message. In one implementation, if the data part of a message received from a connected peer system is different from the data part of the same message received from other connected peer systems, the peer system determines that a fraud violation has occurred. The peer-to-peer system also determined that the peer-to-peer system that sent messages containing different data should be liable for deception. Alternatively, the peer-to-peer system uses a different technology to detect fraud violations, or to identify peer systems that are responsible for fraud violations. If applicable, the peer-to-peer system will not forward messages containing a different data part.
In step 2715, if a fraud violation has occurred, the peer-to-peer system transmits a fraud alert. The deception warning indicates that a deception violation has occurred and the peer system that should be responsible for the deception violation. The peer-to-peer system transmits the spoofing alert to the connected peer-to-peer system, thereby relaying the spoofing alert across the entire grid. In another implementation, the peer-to-peer system sends the fraud alert to the server, and the server handles it appropriately.
In step 2720, when the peer-to-peer systems receive the fraud alert, the peer-to-peer systems will take recovery actions to prevent the fraud violation. The peer-to-peer systems will take action to prevent the fraudulent peer-to-peer system from continuing to affect the grid's activities. In one implementation, the peer-to-peer systems ignore messages from the deceptive peer-to-peer system. In another implementation, the peer-to-peer systems force the deceptive peer-to-peer system to cut off the connection with the grid. These peer-to-peer systems also take actions to repair the effects of the message containing the different data, for example, by sending out a replacement message containing the correct data, based on the data in the other messages used to identify the fraudulent message. Show. Or, one of the peer-to-peer systems evaluates the correct information and forwards the correct information throughout the grid. In another implementation, the peer-to-peer system responds to spoofing alerts by notifying the server. In this case, the server resolves the fraud violations, for example, by disconnecting the peer-to-peer system that is responsible for the fraud violations.
In another implementation, when a peer-to-peer system sends a message, the receiving-end peer systems return and forward the message to the sending-end peer system. The sender peer-to-peer system saves a copy of the sent message. When the disconnected end peer-to-peer system receives the messages returned by the transfer end peer systems, the sender peer-to-peer system compares the data of the transmitted message with the data of the received message. The peer-to-peer system detected a spoofing violation due to a discrepancy. The peer-to-peer system determines that the transfer-end peer-to-peer system has modified the message and sends a fraud alert. In one implementation, unless multiple violations have been reported (for example, following a server's tracking), no action will be taken to restore or repair a deceptive peer-to-peer system. In another implementation, this spoofing return check is used to detect the first layer of spoofing. Once a potential problem has been identified, a more complicated procedure will be adopted later.
In another implementation, the peer-to-peer system detects a fraud violation by comparing the data in a received message with a set of prediction data generated by the peer-to-peer system. If the peer-to-peer system determines that the data in the received message is different from the data generated by the peer-to-peer system, the peer-to-peer system determines that the sender of the received message should be liable for a fraud violation and issues a warning .
In the example of detecting a spoofing violation in the grid 100 shown in FIG. 1, the peer system B receives the same message from the peer systems A, D, and E. Peer-to-peer system B identifies the messages as the same message by comparing the message source identification item and the sequence value. If the peer-to-peer system B detects that the message from the peer-to-peer system A has a different data part, the peer-to-peer system B issues a spoofing alert for identifying the peer system A as a spoofer. Peer-to-peer system B transmits the deception alert to peer systems D and E (and transmits the deception alert to peer system A as needed). The peer-to-peer systems forward the deception alert until all peer systems receive the deception alert. In response to the spoofing alert, these peer-to-peer systems will ignore the message from peer system A. As a result, peer-to-peer systems B, C, and D no longer forward messages from peer-to-peer system A.
FIG. 28 depicts an implementation flow chart 2800 for detecting a security violation in a one-to-one equation switching network. Initially, multiple peer-to-peer systems are connected to form a pair of equality switching networks or grids.
In step 2805, the peer-to-peer system receives a message from one of the peer-to-peer systems to which it is connected. In step 2810, the peer-to-peer system analyzes the message and detects a security violation. The peer-to-peer system determines that the message is a security violation by identifying that the message is invalid or contains invalid data. In another implementation, the peer-to-peer system determines that the message is a security violation by analyzing the way the message is sent to the peer-to-peer system. For example, if the message sent to the peer-to-peer system is a large number of messages that repeat the same message (for example, such as a denial of service attack), the peer-to-peer system recognizes that the message is a security violation. In one implementation, a transmitted message is a series of packets, and the peer-to-peer system detects a security violation below the complete message level, for example, the packet level. The peer-to-peer system also determined that the sending end of the message containing the security violation should be responsible for the security violation. Alternatively, the peer-to-peer system uses a different technology to detect security violations, or to identify peer systems that are responsible for deception violations. The peer-to-peer system will not forward a message or data that contains insecurity violations.
In step 2815, if a security violation has occurred, the peer-to-peer system transmits a security alert. The security alert indicates that a security violation has occurred and the peer system that should be responsible for the security violation. The peer-to-peer system transmits the security alert to the connected peer-to-peer system, thereby relaying the security alert throughout the grid. In another implementation, the peer-to-peer system sends the security alert to the server, and the server handles it appropriately.
In step 2820, when the peer-to-peer systems receive the security alert, the peer-to-peer systems will take appropriate recovery actions to prevent the security violation. The peer-to-peer systems will take actions to prevent the peer-to-peer systems that violate the security of the grid from continuing to affect or damage the grid. In one implementation, these peer-to-peer systems ignore messages from peer-to-peer systems that are responsible for security violations. In another implementation, the peer-to-peer systems force the peer-to-peer systems that are responsible for security violations to cut off the connection with the grid. These peer-to-peer systems will also take appropriate actions to repair any damage caused by the security violation. In another implementation, the peer-to-peer system responds to security alerts by notifying the server. In this case, the server resolves the security violations, for example, by cutting off the connection to the peer system that is responsible for the security violation, and taking actions to repair any grid damage caused
Figures 29 and 30 depict implementation block diagrams of a server 2905 and a peer-to-peer system 3005, respectively. In other implementations, a server or peer-to-peer system includes fewer components than those shown in FIGS. 29 and 30, or includes different or additional components.
The server 2905 operates as described above and includes components for providing the functions described above, including the following components: build grid 2910, add peer-to-peer system 2915, connect peer-to-peer system 2920, switch Disconnect the connection 2925 of the peer-to-peer system, maintain the grid 2930, store and generate grid data (for example, connection, member, connection limit) and rules (for example, transfer rules, connection rules) 2935, manage multiple domains 2940, manage And assist in the redundancy list 2945, manage the multi-grid 2950, manage the observation and participant terminals in the grid 2955, handle the peer-to-peer system archipelago detection and recovery 2960, manage and resolve deception violations and security violations 2965, and server centralization Services 2970 (for example, network connection and addressing, player matching, chat rooms, data backup, etc.).
The peer-to-peer system 3005 operates as described above and includes components for providing the functions described above, including the following components: build grid 3010, join grid 3015, connect peer system 3020, disconnect Peer-to-peer system connection 3025, maintenance grid 3030, storage and generation of grid data (for example, connection, member, connection upper limit) and rules (for example, transfer rules, connection rules) 3035, build/update/use redundancy List 3040, operation in a multi-grid 3045, collaboration in a grid and operation as an observer and participant 3050, processing grid islands detection and recovery 3055, management/detection/resolution of deception violations and security violations 3060 And peer-to-peer system services 3065 (for example, network connection and addressing, player matching, chat rooms, data backup, etc.).
The implementation of various peer-to-peer switching networks provides satisfactory advantages. Grids may often be used in several network applications, including online massively multiplayer computer games. An online game application is only an example of a larger network group application, and its common point is: sharing and maintaining a shared data set. When the data set on a peer-to-peer system is updated, the information will be sent to other peer-to-peer systems in a group, and the information will be forwarded throughout the grid, so that each peer-to-peer system has An updated data set. The switching grid allows peer-to-peer systems with restricted network bandwidth to exchange data with each other, without the need for a centralized server (responsible for data distribution). This network can be used to exchange game data, other game-related information, media files, instant audio or instant video.
For example, in one implementation, the peer-to-peer systems use the grid to send files. The peer-to-peer system in the grid sends a file (sent in one message or divided into multiple messages) by sending the file to a peer-to-peer system connected to the publisher (published), and the members of the grid The peer-to-peer system forwards the file to all members in the entire grid. In this method, all members in the grid will receive the sent file without going through a server or using a direct connection from the sender to each peer system. In various implementations, any type of file can be sent. Files may be data, media, or executable software applications. Examples of files sent through a grid include (but are not limited to) the following items: instant media files (for example, audio and/or video), media files, response data from games or other applications, maps, announcements , Messages, application data and modules (for example, map, template, texture, sound).
Electronic hardware, computer software, or a combination of these technologies can be used to implement various implementations of the present invention. Most implementations include one or more computer programs executed by a programmable computer. For example, in one implementation, each peer-to-peer system and the server includes one or more computers for executing software that implements peer-to-peer switching network functions. Generally speaking, every computer includes one or more processors, one or more data storage media (for example, volatile or non-volatile memory modules, permanent magneto-optical storage devices, for example, hard drives) , Floppy drives, CD-ROM drives and tape drives), one or more input devices (e.g., mouse and keyboard), and one or more output devices (e.g., display console and printer).
Computer programs include executable code, which is usually stored in a persistent storage medium and then copied into memory during execution. The processor executes the program code by retrieving program instructions from the memory in a specified order. When the program code is executed, the computer receives data from the input device and/or storage device, performs data calculations, and then transmits the resultant data to the output device and/or storage device.
Various exemplary implementations of the present invention have been described. However, those familiar with the art should understand that there are other feasible implementations that fall within the scope of the present invention. For example, although the foregoing description describes several peer-to-peer switching network implementations in the context of supporting game applications, there are other feasible applications, such as file sharing or other data dissemination applications.
Accordingly, the present invention is not limited to the implementation as described above.
<p>100,1100,2500Peer-to-peer switching network (grid)</p><p>105<sub>A...J</sub>,1105<sub>A...J</sub>,3005Peer-to-peer system (peer-to-peer)</p><p>110,1110,2905Server</p><p>2910Build grid</p><p>2915Join the peer-to-peer system</p><p>2920Connect to peer-to-peer system</p><p>2925Cut off the connection of the peer-to-peer system</p><p>2930Maintenance Grid</p><p>2935Storing and generating grid data and rules</p><p>2940Manage multiple domains</p><p>2945Manage and assist redundant lists</p><p>2950Manage multiple grids</p><p>2955Management of observation and participation in the grid</p><p>2960Processing peer-to-peer system archipelago detection and recovery</p><p>2965Manage and resolve fraud violations and security violations</p><p>2970Server centralized service</p><p>3010Build grid</p><p>3015Join the grid</p><p>3020Connect to peer-to-peer system</p><p>3025Cut off the connection of the peer-to-peer system</p><p>3030Maintenance grid</p><p>3035Storing and generating grid data and rules</p><p>3040Build/Update/Use Redundant List</p><p>3045Operating in multigrid</p><p>3050Collaborate in the grid and operate as an observer and participant</p><p>3055Processing grid island detection and recovery</p><p>3060Manage/Detect/Resolve Deception Violations and Security Violations</p><p>3065Peer-to-Peer System Service</p>
Figure 1 depicts an implementation diagram of a peer-to-peer switching network.
Figure 2 depicts a block diagram of the implementation of the message.
Figure 3 depicts the implementation flow chart of the peer-to-peer system forwarding messages in the peer-to-peer switching network.
Figure 4 depicts an implementation flow chart of a peer-to-peer system in a peer-to-peer switching network to forward messages according to a set of forwarding rules.
Figure 5 depicts the implementation flow chart of building a peer-to-peer switching network.
Figure 6 depicts an implementation flow chart of connecting a peer-to-peer system to a peer-to-peer equation switching network.
Figure 7 depicts an implementation flow chart of selecting multiple peer-to-peer systems to join the one-to-equal switching network.
Figure 8 depicts an implementation flow chart for forcing a peer-to-peer system to provide a connection to a new peer-to-peer system in a peer-to-peer switching network.
Figure 9 depicts an implementation flow chart of disconnecting a connection in a pair of equation switching network.
Figure 10 depicts an implementation flow chart of maintaining a peer-to-peer switching network.
Figures 11 to 18 depict examples of implementation of building, adjusting, and maintaining a grid.
Figure 19 depicts an implementation flow chart of building a redundant list in a pair-equal switching network.
Figure 20 depicts an implementation flow chart for updating the redundancy list of a disconnected peer system in a pair-equal switching network.
Figure 21 depicts an implementation flow chart of forwarding a message from a peer-to-peer system belonging to multiple grids.
Figure 22 depicts an implementation flow chart of transferring a message in a grid supporting observers and participating terminals.
FIG. 23 depicts an implementation flow chart of detecting whether there is a peer-to-peer system island in a grid.
Figure 24 depicts the implementation flow chart of removing the P2P archipelago in the one-to-equality switching network.
Figures 25 and 26 depict examples of detecting P2P islands and joining P2P islands.
Figure 27 depicts an implementation flow chart of detecting a spoofing violation in a one-to-one equation switching network.
Figure 28 depicts an implementation flow chart of detecting a security violation in a one-to-equal switching network.
Figures 29 and 30 respectively depict the implementation block diagrams of a server and a peer-to-peer system.
Figures 31A and 31B depict typical master-slave architecture and peer-to-peer architecture.
32 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32
90 members in 7 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 51309803 | United States of America | P | |
| 51309803 | United States of America | P | |
| 60513098 | United States of America | – | |
| 10700798 | United States of America | – | |
| 70079803 | United States of America | A | |
| 70079803 | United States of America | A | |
| 20030513098P | – | – | – |
| 20030700798 | – | – | – |
| US20030513098P | – | – | – |
| US20030700798 | – | – | – |
Members90
| Document | Office | Kind | |
|---|---|---|---|
| US2005086287A1 | United States of America | A1 | |
| US2005086288A1 | United States of America | A1 | |
| US2005086329A1 | United States of America | A1 | |
| US2005086350A1 | United States of America | A1 | |
| US2005086369A1 | United States of America | A1 | |
| TW200515742A | Taiwan Province of China | A | |
| TW200515743A | Taiwan Province of China | A | |
| TW200515744AThis record | Taiwan Province of China | A | |
| TW200515747A | Taiwan Province of China | A | |
| US2005097386A1 | United States of America | A1 | |
| US2005108427A1 | United States of America | A1 | |
| WO2005046168A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2005046169A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2005046170A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2005046171A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2005046172A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2005046173A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW200524341A | Taiwan Province of China | A | |
| TWI250743B | Taiwan Province of China | B | |
| WO2006043963A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW200614733A | Taiwan Province of China | A | |
| TWI256806B | Taiwan Province of China | B | |
| TWI259681B | Taiwan Province of China | B | |
| EP1690398A1 | European Patent Office (EPO) | A1 | |
| EP1690399A1 | European Patent Office (EPO) | A1 | |
| EP1692839A1 | European Patent Office (EPO) | A1 | |
| KR20060094964A | Republic of Korea | A | |
| KR20060115362A | Republic of Korea | A | |
| KR20060123122A | Republic of Korea | A | |
| TWI268061B | Taiwan Province of China | B | |
| CN1894927A | China | A | |
| CN1894928A | China | A | |
| CN1894929A | China | A | |
| JP2007509405A | Japan | A | |
| JP2007509569A | Japan | A | |
| JP2007509570A | Japan | A | |
| JP2007509571A | Japan | A | |
| JP2007509572A | Japan | A | |
| JP2007513401A | Japan | A | |
| TWI283118B | Taiwan Province of China | B | |
| EP1803272A1 | European Patent Office (EPO) | A1 | |
| US2008046554A1 | United States of America | A1 | |
| US2008046555A1 | United States of America | A1 | |
| JP2008517554A | Japan | A | |
| US2008147854A1 | United States of America | A1 | |
| US7392422B2 | United States of America | B2 | |
| US2008222250A1 | United States of America | A1 | |
| US2008228877A1 | United States of America | A1 | |
| KR20080107472A | Republic of Korea | A | |
| JP4324199B2 | Japan | B2 | |
| US7596633B2 | United States of America | B2 | |
| US7610402B2 | United States of America | B2 | |
| US7610505B2 | United States of America | B2 | |
| US7627678B2 | United States of America | B2 | |
| JP4374022B2 | Japan | B2 | |
| TW201001988A | Taiwan Province of China | A | |
| TWI321413B | Taiwan Province of China | B | |
| US7685301B2 | United States of America | B2 | |
| KR100956481B1 | Republic of Korea | B1 | |
| US7725599B2 | United States of America | B2 | |
| US7747775B2 | United States of America | B2 | |
| US2010223347A1 | United States of America | A1 | |
| US7792968B2 | United States of America | B2 | |
| US7792988B2 | United States of America | B2 | |
| KR100992347B1 | Republic of Korea | B1 | |
| US7949784B2 | United States of America | B2 | |
| JP4691502B2 | Japan | B2 | |
| US8010633B2 | United States of America | B2 | |
| JP4856084B2 | Japan | B2 | |
| JP4857116B2 | Japan | B2 | |
| CN1894927B | China | B | |
| JP4949030B2 | Japan | B2 | |
| JP4970039B2 | Japan | B2 | |
| KR101162381B1 | Republic of Korea | B1 | |
| EP1803272B1 | European Patent Office (EPO) | B1 | |
| CN1894928B | China | B | |
| US8396984B2 | United States of America | B2 | |
| TWI404376B | Taiwan Province of China | B | |
| TW201347464A | Taiwan Province of China | A | |
| EP2843901A1 | European Patent Office (EPO) | A1 | |
| EP2843902A1 | European Patent Office (EPO) | A1 | |
| EP2843903A1 | European Patent Office (EPO) | A1 | |
| EP1690398B1 | European Patent Office (EPO) | B1 | |
| EP1692839B1 | European Patent Office (EPO) | B1 | |
| EP1690399B1 | European Patent Office (EPO) | B1 | |
| TWI514816B | Taiwan Province of China | B | |
| EP2843901B1 | European Patent Office (EPO) | B1 | |
| EP2843903B1 | European Patent Office (EPO) | B1 | |
| EP2843902B1 | European Patent Office (EPO) | B1 | |
| EP2843901B8 | European Patent Office (EPO) | B8 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- 200515744
- Publication, DOCDB
- 200515744
- Publication, EPODOC
- TW200515744
- Application
- 93122437
- Application, DOCDB
- 93122437
- Application, EPODOC
- TW200493122437
Titles4
- Chinese
- 對等式轉接網路
- English
- PEER-TO-PEER RELAY NETWORK
- Unlabeled
- 對等式轉接網路
- Unlabeled
- Peer-to-peer switching network
Classification
- CPC, 11
- H04L67/104
- G06F15/16
- A63F2300/408
- A63F2300/572
- H04L45/02
- H04L45/42
- H04L67/1091
- H04L67/1048
- H04L67/1046
- H04L67/1055
- G06F15/173
- IPC, 4
- H04L12 28
- G06F15 16
- G06F15 173
- H04L29 06