WO2012089974A1 - Procede de communication de donnees mis en œuvre par un systeme d'aiguillage dans un reseau pair a pair - Google Patents

Procede de communication de donnees mis en œuvre par un systeme d'aiguillage dans un reseau pair a pair Download PDF

Info

Publication number
WO2012089974A1
WO2012089974A1 PCT/FR2011/053177 FR2011053177W WO2012089974A1 WO 2012089974 A1 WO2012089974 A1 WO 2012089974A1 FR 2011053177 W FR2011053177 W FR 2011053177W WO 2012089974 A1 WO2012089974 A1 WO 2012089974A1
Authority
WO
WIPO (PCT)
Prior art keywords
level
peer
identifier
peers
network
Prior art date
Application number
PCT/FR2011/053177
Other languages
English (en)
Inventor
Patrick Brown
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Publication of WO2012089974A1 publication Critical patent/WO2012089974A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies

Definitions

  • the invention is in the context of telecommunications networks and more particularly relates to a method of communications in a peer-to-peer network used to distribute digital data in the network.
  • the following performance criteria can be used for peer-to-peer networks: the network initialization time, the time interval between the time the data is sent by the source and the moment they are received. by all peers in the network, the adaptability of the network to react to the arrivals and departures of peers.
  • peer-to-peer networks have either a so-called “unstructured” broadcast architecture, in which each useful data exchange is preceded by a peer-to-peer signaling exchange, or an architecture so-called “structured” broadcast, in which each peer is able to determine from a network operating rule with which peers it must communicate, and which data it has to exchange.
  • Networks with "unstructured" architecture are more adaptable to the arrival and departure of peers, but have several disadvantages, namely in particular a congestion of the network due to the signaling messages and a different transmission time between the source and the different peers .
  • This second drawback greatly degrades the quality of transmission of data streams intended to be received quickly and with little difference between the different peers, such as audio-video streams containing news or sports events.
  • Networks based on a structured data dissemination architecture can transmit data in optimized and close times for all peers, but are highly disrupted when a peer arrives in the network or exits the network.
  • each element of the sequence identifying the number of the block of data to be transmitted during a time interval corresponding to this element, the time flowing from right to left, from first to the last element:
  • bit "1" is placed at the positions for which a block of data is last transmitted, the "0" bit occupying the other positions.
  • a "1" bit in the sequence identifies the time interval during which a block is last transmitted and the number of bits "0" to its right the number of times that block is retransmitted.
  • sequences may be periodically repeated after n time intervals to decrease complexity.
  • a sequence of length n composed of bits of value "0" and "1" suffices to represent all the block sequences that can be sent by a peer.
  • Each pair is assigned a unique identifier of length n and the corresponding data block transmission sequence.
  • each peer is represented by a unique binary sequence that dictates its behavior.
  • the identifier pair 01001 is programmed to transmit the sequence of blocks:
  • the block numbers and the time intervals can be represented modulo n, and the sequences (1) and (2) by the unique sequence: 1, 4, 4, 4, 1, the time being counted from right to left from 1 to 5 before repeating itself.
  • This rule defines which blocks of data are transmitted by a peer.
  • Lemma 1 A peer transmits as many different data blocks in a sequence of time n as there are "1" in the binary representation of its identifier.
  • the destination peer b + e t also sends a block at par b at time t.
  • a peer sends blocks and only receives blocks of n different peers, called Neighbors.
  • Table 1 illustrates which blocks are transmitted and received by the peer ID 01001.
  • the term "descendants" of a pair b for a block of data p the peers who receive a copy of this block directly from b or the descendants of these peers for the data block p.
  • Proposition 2 It follows from Rule 3 already stated that a peer only exchanges data with peers above or below its own level but in no case with peers at its level.
  • Proposition 3 According to Lemma 3, a peer receiving a block of data of a higher level must retransmit it; according to Lemma 2, a peer receiving a block of data of a lower level does not retransmit it.
  • corollary 1 if a peer of level I must send a data block k times, it means that this peer has a direct descendant of level 1 + 1, k-1 direct descendants of level 1-1, k -1 level I descendants and all other descendants at level 1-1 or below. His descendants at levels 1 + 1 and I do not retransmit the data block.
  • Proposition 4 A level I peer has n-1 direct descendants of level 1 + 1, I direct descendants of level 1-1, I level I descendants, all his other descendants of levels 1-1 or lower. His descendants at levels 1 + 1 and I do not retransmit the data block.
  • a level I peer has n-1 direct ancestors of level 1 + 1, I direct ancestors of level 1-1, I ancestors of level I, all other ancestors of levels 1 + 1 or higher. Blocks received from level 1-1 ascendants and I are not retransmitted.
  • the maximum delay of a block is evaluated for a peer A counted from the moment at which the source transmitted it.
  • a delay is measured in the number of transmissions. All peers with a "0" in their identifier receive the block n transmissions after the source, with a delay n. The special peer whose ID contains only "1" receives all the blocks just before the last transmission with a delay n-1.
  • D the average time taken by a block of data to reach a destination after its transmission by the source.
  • a block of data can either remain in a peer (that is, be transmitted multiple times) or drop one level or go up one level for its last transmission. So a level I peer with a "0" in its identifier gets a block after it reaches level 1 + 1 and is returned to level I. That is, a delay for the peer of (n-l + 2) D. The special peer whose identifier contains only "1" has a nD propagation delay.
  • the invention proposes in particular to solve these disadvantages.
  • time interval time slot (or slot in English) used by a peer to send a block of data to a single other peer; according to the invention, the time intervals are not equal and take into account the propagation time and possible retransmissions of the block;
  • n the maximum number of bits (also called bits) used to code the identifier of a peer in the network
  • - level of order i the set of peer identifiers (and by extension, the set of corresponding peers) having a number i of a predetermined binary element b 0 (fixed value 0 or 1, common to all peers) ); this notion applies to the identifiers: an identifier is of order i if it comprises a number i of said binary element bO;
  • - incomplete level level that is neither complete nor empty.
  • - rule defining the order of allocation of the identifiers: for an integer n, a population of N peers, with N ⁇ 2 n -l, and a binary element bO, one assigns to each of peers an identifier encoded on n bits; when the hypercube is incomplete, the identifiers are allocated according to an allocation rule, defining an order of allocation of the existing levels taking into account the dimension n of the network:
  • the order of attribution of the identifiers of the same level is indifferent. Regardless of the chosen allocation order, in the case of an incomplete hypercube, one or more levels may not be awarded. In addition, there may be a level assigned only partially.
  • level i level following level L: level whose identifiers are assigned after those of level L, according to the rule of allocation of identifiers in the network; when the levels are, in accordance with the allocation rule, assigned in descending order, the level following a level of order i is the order level i-1;
  • level preceding the level L level whose identifiers are allocated before those of the level L, according to the rule of attribution of the identifiers in the network; when the levels are, in accordance with the allocation rule, assigned in descending order, the level preceding a level of order i is the level of order i + 1;
  • - peer present: a peer with an address in the network
  • theoretical receiver it is a theoretical receiver of a theoretical recipient, in other words a peer to which a theoretical receiver would be able to transmit a block of data, a theoretical receiver being determined from the block number and the identifier of the theoretical recipient, according to said general rule.
  • - peer to identify peer to receive a new identifier following the detection of an event in the network; - peer to notify: peer retaining its identifier but must be informed following the detection of an event in the network;
  • end sequence sequence belonging to a peer identifier, located in the least significant bit positions of the identifier and composed of a number of bits at "0" (this number may be zero) followed by a bit at "1" on the left.
  • the invention is directed to a structured mechanism for distributing data in a peer-to-peer network with any number of peers, which adapts to the arrivals and departures of peers, and which only locally changes the operation of the network.
  • the invention more specifically targets the network switching systems, the network peers, the network management unit and the processes implemented by these entities, respectively called “data communication method”, “broadcast method data “and” control method ".
  • the invention relates to a management unit that can be used in a peer-to-peer network, this management unit comprising:
  • identifier comprising binary elements, the allocation of the identifiers being done in accordance with a predefined order of allocation of the levels, a level being constituted by the set of identifiers comprising a number j of a predetermined bit;
  • this referral system determines the complete, empty or incomplete nature of the reference level L to which the identifier of this present peer belongs and of at least one level following this reference level in the order allocation of levels.
  • the invention relates to a method of controlling a peer-to-peer network, this method being implemented by a management unit, comprising:
  • a step of determining the peers present in the network a step of assigning to each of said present peers an identifier comprising binary elements, the allocation of the identifiers being done in accordance with a predefined order of allocation of the levels, a level being constituted by the set of identifiers comprising a number j of a predetermined bit;
  • At least one referral system in charge of at least one peer present:
  • this referral system determines the complete, empty or incomplete nature of the reference level L to which the identifier of this present peer belongs and of at least one level following this reference level in the order allocation of levels.
  • control method according to the invention further comprises a step of determining, for each of the peers present, a referral system in charge of this peer present, able to create a suitable ordered list. to contain at least one recipient peer to which this present peer is to transmit a block of data that it has received.
  • the referral system may be incorporated into the peer of which it is responsible.
  • the invention therefore aims at a method of controlling a peer-to-peer network, this method being implemented by a management unit, comprising:
  • the present peer determines the complete, empty or incomplete nature of the reference level L to which the identifier of this present peer belongs and of at least one level following the reference level in the assignment order levels.
  • the invention proposes to modify the known method of complete hypercubes networks of dimension n, limited in the current state of the art to networks of 2 n -l pairs, to apply it to a peer-to-peer network comprising any number of peers.
  • the "other rules" within the meaning of the invention are referenced "Rxx", so as not to confuse them with the rules Rule 1, Rule 2 and Rule 3 complete hypercubes networks.
  • the main role of the management unit is to determine the network levels and assign the identifiers to the network peers in an original way, the neighbors of each of the peers being determined in accordance with the rule.
  • general hypercubes complete of dimension n.
  • the management unit then provides each referral system in charge of a peer present, the identifier of this peer and information to determine if the identifier of this peer belongs to a complete level, and if at at least one of its next levels is complete, incomplete or empty, as well as the address and identifier of each of its neighbors.
  • This information makes it possible for the referral system to perfectly determine the behavior of the peer in question, in other words to determine which blocks of data it must retransmit and to whom.
  • the management unit according to the invention is capable of managing a network comprising any number of peers.
  • the management unit provides a referral system in charge of a peer only the identifier of this peer and local information to the environment of this peer is the level at which this peer belongs, as well as at least one next level.
  • the information sent by the management unit allows the referral system to determine whether the L-1 level is complete or empty.
  • the information sent by the management unit also allows the referral system to determine if the L-2 level is empty.
  • control method comprises, on receiving a specific event, the following steps:
  • peers to identify determination of the peers to which a new identifier must be attributed because of the occurrence of this event, called "peers to identify";
  • peers to be notified determination of peers retaining their identifiers but impacted by the event, known as "peers to be notified";
  • the management unit furthermore provides, to at least one referral system in charge of at least one peer to be identified or notified, information enabling it to determine whether the level L -2 is empty.
  • the management unit determines the peers affected by an event occurring in the network, and communicates to the referral systems in charge of these peers the information of the same type as that communicated to the initialization of the network for that they can change their behavior to respond to this event.
  • the invention only affects the operation of the network locally, only the referral systems in charge of the peers impacted by the event receiving information from the management unit.
  • the management unit according to the invention can in particular react to the events constituted by the arrival of a new peer in the network when at least one network level is incomplete and by the departure of a peer from the network.
  • the peers to be notified further comprise the Lk + 2 level peers, if the identifier of the new peer is the first identifier assigned in its level.
  • the identifier of the outgoing peer belongs to the last Lderatt level in which the identifiers have been assigned, no peer is to be identified, the identifier of the outgoing peer becoming available and the peers to be notified include the neighbors of the outgoing peer; and when this is not the case:
  • the only peer to be identified is an unspecified peer whose identifier belongs to the last Lderatt level, said "substitute pair", this alternate peer being identified by the identifier of the outgoing peer, the identifier of the alternate peer becoming available;
  • said peers to be notified are the neighbors of the outgoing peer and the successor peer and, if the last Lderatt level in which the identifiers were assigned was complete before the departure of said outgoing pair, the Lderatt and Lderatt + 1 level peers.
  • the peers to be notified further comprise the Lderatt + 2 level peers if the identifier of the outgoing peer or the alternate peer was the only one of its level.
  • control method comprises:
  • This feature advantageously allows a referral system to obtain the address of a recipient pair even if it is not part of its neighbors within the meaning of the general rule of hypercubes complete networks.
  • the method according to the invention makes it possible to construct the network controlled by the management unit according to the invention by merging two subnetworks. This fusion constitutes an event within the meaning of the invention.
  • the network is obtained by merging a first subnetwork, and a second subnetwork, both of dimension n-1, the first subnetwork having a level. more complete than said second subnet and the network order level n-1 is constituted by:
  • pivot identifier constituted by n-1 predetermined binary elements, completed, in the insertion position, by the complementary bit element, this pivot identifier being assigned to a peer said pivot pair chosen in an incomplete level if the last level of the identifiers assigned in the first subnet or the last level of the identifiers allocated in the second subnet is incomplete, and if not in any one of these two levels if both are complete;
  • each of the other levels of order W of the network being constituted by:
  • the identifiers of the level of order W1 according to the order W of the first sub-network, these identifiers being completed, in the insertion position, by the predetermined bit; and by the identifiers of the order level W of the second sub-network, these identifiers being completed, in their insertion position, by the complementary bit element.
  • the size n of the network is chosen as a function of the number N of peers present in the network so that the number of assigned levels is equal to n / 2.
  • This characteristic advantageously makes it possible to obtain short diffusion times.
  • the invention also aims at a referral system suitable for use in a peer-to-peer network, this system comprising:
  • said rule being selected from information making it possible to determine the complete, empty or incomplete character of a so-called reference level L to which said identifier belongs, and of at least one level following said reference level in a predefined order of assigning levels, a level consisting of the set of peer identifiers comprising a number j of a predetermined bit;
  • the invention relates to a data communication method implemented by a referral system in a peer-to-peer network, this method comprising:
  • the rule being selected from information making it possible to determine the complete, empty or incomplete character of a so-called reference level L to which this identifier belongs, and of at least one level following this reference level in a predefined order of assigning the levels, a level consisting of the set of peer identifiers comprising a number j of a predetermined bit;
  • the data communication method according to the invention comprises a rule selection step comprising:
  • This selection step and the step of determining all the peer recipients can be implemented by the peer.
  • the selection step is implemented by a management unit capable of assigning the peer identifiers according to the predefined assignment order.
  • the selection step and the step of determining all the peer recipients are implemented by a management unit able to assign the peer identifiers according to the predefined assignment order.
  • a referral system deduces the operation of this peer from the information it receives from the management unit.
  • the referral system can be integrated into the management unit
  • the referral system can be integrated into this peer.
  • the invention therefore aims at a method of data communication implemented by a peer in a peer-to-peer network, this method comprising:
  • a step of determining a reference level L to which this identifier belongs a level consisting of the set of peer identifiers comprising a number j of a predetermined bit;
  • a step of obtaining information enabling the peer implementing the invention to determine the complete, empty or incomplete character of the reference level and of at least one level following this reference level in a predefined assignment order levels ;
  • this rule being: - the rule of complete hypercubes of dimension n, called "general rule” if a condition on this information is satisfied;
  • each peer derives its own rule of operation from the information it receives from the management unit.
  • the behavior of a peer differs from that of complete hypercubes networks only for the last assigned levels.
  • another rule different from the complete hypercubes rule, is used to determine for at least one peer present considered, a list of at most n pairs recipients, which takes into account the theoretical target peers. of this peer who are absent from the network.
  • the theoretical recipient peers that are absent from the network will be replaced by at most one other peer. Further readjustments may further be made when defining the list of at most n peer recipients that defines the behavior of the peer considered.
  • This other rule is applied conditionally to the situation in which the peer whose list is to be defined is. To determine whether this other rule applies, it is determined in particular whether the level to which this peer belongs is complete, empty or incomplete. The next level in the order of assigning levels is also examined.
  • the aforementioned information allows the referral system to determine whether the reference level L is complete and whether the level L-1 is complete or empty; the condition is satisfied if the L-1 level is complete.
  • the aforementioned information enables the referral system to determine whether the reference level L is complete, whether the L-1 level is complete or empty, and whether the L-2 level is empty; the condition is satisfied if the L-2 level is not empty.
  • said method further comprises a step of creating an ordered list capable of containing at least one recipient pair to which said peer must transmit a block of data received by said peer.
  • This ordered list of peer recipients may contain, for a data block number, zero, one, or more recipient peers.
  • the other rule uses an extended ordered list obtained from a generator identifier and a data block numbered by:
  • a step of determining a level of order G referred to as the generator level, to which the generator identifier belongs;
  • a step of determining a first ordered list comprising only part of the identifiers belonging to the generator level from the generator identifier and the number of the numbered block;
  • the extended ordered list being obtained by adding the extension identifier at the last position in the first ordered list.
  • the other rule uses an association method which associates a base identifier with a peer identifier and a number of a numbered data block.
  • the association method comprises:
  • the association method comprises:
  • the step of determining a first ordered list comprises
  • the other rule for broadcasting a numbered data block includes when one when the level L-1 is not empty:
  • this particular characteristic makes it possible to manage the behavior of a peer whose identifier belongs to a complete level L, the level L-1 being incomplete.
  • this particular characteristic makes it possible to manage the behavior of a peer whose identifier belongs to a complete level L, the level L-1 being complete or incomplete, and the level L-2 being empty.
  • determining the other broadcast rule of a numbered data block includes, when a second condition is satisfied:
  • base identifier an identifier called "base identifier"
  • the second condition is satisfied when the level L-1 is empty, the level L being incomplete.
  • the second condition is satisfied when the level L-1 is empty.
  • the determination of the other rule of diffusion of a numbered data block comprises, when the level L-1 is empty, and when the reference level L is complete, the following steps:
  • a peer of the level L is substituted for its theoretical recipients of level L-1 absent to transmit the data blocks to the peer recipients of its own level L.
  • the invention also aims at a pair adapted for use in a peer-to-peer network, comprising:
  • the peer according to the invention further comprises a subsystem for determining this set, this subsystem being in accordance with a subsystem for determining recipient pairs of a referral system as mentioned. above.
  • the peer according to the invention furthermore comprises a subsystem for selecting a rule used to determine this set, this subsystem being in conformity with a rule selection subsystem of a control system. referral as mentioned above.
  • the invention also relates to a data dissemination method implemented by a peer in a peer-to-peer network, said method comprising:
  • the referral system comprises:
  • a rule selection subsystem including
  • a recipient peer determination subsystem comprising said means for determining the set of peer recipients.
  • the management unit further comprises a subsystem for selecting a rule used to determine the set of peer recipients of a numbered data block received by a user. peer, this subsystem conforming to a rule selection subsystem of a referral system as mentioned above.
  • the management unit according to the invention may also include a subsystem for determining this set, this subsystem being in accordance with a subsystem determining the recipients of a referral system as mentioned above. .
  • the various steps of the data communication method, the different steps of the control method and different steps of the broadcasting method according to the invention are determined by instructions of computer programs.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented by a computer, this program comprising instructions adapted to the implementation of at least one part of the steps of a data communication method as mentioned above.
  • this program includes instructions for implementing only one step among the rule selection step and the peer determination step. recipients. In another embodiment, it includes instructions for implementing both of these steps.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented by a computer, this program comprising instructions adapted to the implementation of the steps of the method of control as mentioned above.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented by a computer, this program comprising instructions adapted to the implementation of the steps of the broadcasting method such that mentioned above.
  • These programs can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
  • the invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • FIG. 1 represents levels of peer identifiers in a 4-dimensional network, according to a particular embodiment of the invention
  • FIG. 2 represents two examples of orders of allocation of the levels of FIG.
  • FIG. 3 represents, in flowchart form, the main steps of a diffusion method according to a particular embodiment of the invention
  • Figure 3a shows a pair according to a particular embodiment of the invention
  • FIG. 4 and 5 show, in flowchart form, the main steps of a control method, implemented by a management unit according to a particular embodiment of the invention
  • FIG. 6 represents a network dimension change made by a management unit according to a particular embodiment of the invention.
  • FIG. 7 and 8 show, in flowchart form, the main steps of a data communication method, implemented by a data communication device according to a first embodiment of the invention
  • FIG. 9 and 10 show, in flowchart form, the main steps of a data communication method, implemented by a data communication device according to a second particular embodiment of the invention.
  • FIGS. 11 and 11a show an example of obtaining an extended ordered list in accordance with a particular embodiment of the invention.
  • FIG. 11b represents an example of obtaining a basic identifier in accordance with a particular embodiment of the invention.
  • FIG. 11c represents an example of obtaining a basic identifier in accordance with another particular embodiment of the invention.
  • FIG. 12 represents a referral system according to a particular embodiment of the invention, in the form of a switching device.
  • FIG. 13 shows a management unit according to a particular embodiment of the invention.
  • FIG. 1 represents, in a network of dimension 4, four levels of identifiers, these levels L3, L2, L1, L0 being ordered in descending order of the number of "0's" in their identifiers.
  • the identifiers of the peers are allocated by the management unit 10, in descending order of level, and taken in any order within the same level.
  • Figure 2 shows two examples of assignment orders.
  • Figure 13 shows a management unit 10 according to a particular embodiment.
  • this management unit 10 has the hardware architecture of a computer. It comprises a processor 11, a read-only memory 12, a random access memory 13, a rewritable non-volatile memory 14 and communication means 15 with the referral systems in charge of the network's peers. These communication means 15 may be internal communication means, via a data bus, and / or external via the network.
  • the read-only memory 12 constitutes a support according to the invention, readable by the processor 11 and on which is recorded a computer program PGM2 comprising instructions for the execution of the steps of a control method according to the invention whose main steps will be described with reference to Figures 4 to 6.
  • the read-only memory 12 also stores a bit bO, in this case the bit "0", this bit being used by the management unit 10 to construct the identifiers of the peers as described in FIG.
  • the rewritable non-volatile memory 14 includes a register for storing the dimension n of the network. This dimension n must respect the inequality N ⁇ 2 n where N is the number of peers in the network.
  • the management unit 10 stores the addresses ADij of the present peers of the network in a database 17.
  • FIG. 12 represents a routing system DA according to a first particular embodiment of the invention.
  • this DA routing system is a device having the hardware architecture of a computer. It comprises a processor 111, a read-only memory 112, a random access memory 113, a rewritable non-volatile memory 114 and communication means 115 with the management unit 10 and with the peers of the network. It will be noted that these communication means 115 may be internal communication means, via a data bus, and / or external via the network depending on whether the switching system is incorporated or not in the management unit.
  • the read-only memory 112 constitutes a support according to the invention, readable by the processor 111 and on which is recorded a computer program PGM1 comprising instructions for executing the steps of a data communication method according to the invention. whose main steps will be described with reference to FIGS. 7, 8, 11 and 11a.
  • the rewritable non-volatile memory 114 of the routing system DA comprises in particular registers for storing for each peer for which it is responsible, a unique identifier IDi received from the management unit 10.
  • the processor 11, the random access memory 12 and the read-only memory 13 of the management unit 10 are able to determine the identifiers of each of the levels of the network.
  • the management unit 10 comprises, in its rewritable non-volatile memory 14, the identifiers of the PPim peers present in the network.
  • the management unit 10 is able to determine, during a step G10, the dimension n of the network, and to store it in the non-volatile rewritable memory 14.
  • the program PGM2 includes instructions for allowing the management unit 10, when executed by the processor 11, to determine, during a step G25, the PPim peers present in the network.
  • the management unit 10 is able to assign, during a step G30, a unique identifier to each of the peers present.
  • the identifiers are assigned to the peers in descending order of the levels, the identifiers being taken in any order within the same level.
  • it uses the binary element b0, in this case "0", this element being read in the read-only memory 12 during the same step G10.
  • the peers are ordered according to the number of "0's" in their identifiers, as shown in FIG. 1.
  • the management unit 10 assigns the peers a identifier, the identifiers having the most "0" possible being assigned first.
  • the particular identifier having all the bits at 0 is, in the examples described, reserved for the source of the data stream.
  • the assignment order among the identifiers having the same number of bits at "0" is irrelevant. The assignment order can be illustrated by the ordered lists of Figure 2.
  • the management unit determines, during a step G26, for each of said peers present PPim, a routing system DAi in charge of this peer.
  • the program PGM2 comprises instructions for allowing the management unit 10, when executed by the processor 11, to determine, during a step G40, the neighbors VPij of each of the present peers PPim, by applying the general rule R already described complete hypercubes networks of dimension n.
  • neighbors of a peer are the theoretical recipients present at which this peer is likely to send a block of data.
  • the management unit 10 is able to provide, during a step G50, each switching system DAi in charge of at least one present peer PPim IDim identifier of this peer PPim and information to determine if the reference level L to which the identifier IDim belongs is complete, and if the level Ll following this reference level in the order of the levels is empty or complete.
  • This information may for example be constituted by the total number of levels in which identifiers have been assigned as well as the last complete level.
  • the management unit 10 is furthermore capable of providing, during a step G60, to each of the peers present PPim, the identifier and the address of each of its neighbors.
  • the management unit 10 is able to detect a certain number of events impacting the network in the steps G70 or G110 which will be described below.
  • the management unit determines, during a step G90 or G130, possible pairs Pjm to identify and if necessary, the identifier of these peers, these identifiers being chosen (step G200 ) in a so-called allocation level Lk determined in step G80 or G120.
  • the management unit determines which are the Pqr pairs to be notified following the detected event.
  • the management unit 10 then sends (step G220) to each of the routing systems DAj in charge of at least one peer to be identified, the new identifier IDjm of this peer, the identifier and the address of each of its neighbors, and information enabling it to determine whether the reference level L to which its identifier belongs is complete, and whether the level Ll following this reference level in the order of the levels is empty or complete.
  • the management unit sends (step G230) to each of the routing systems DAq in charge of at least one peer Pqr to be notified, information enabling it to determine whether the reference level L to which its identifier belongs is complete. , and if the level L1 following this reference level in the order of the levels is empty or complete. The identifier of the peers to be notified is not modified.
  • the management unit 10 it is not necessary for the management unit 10 to send information to the referral systems enabling them to determine whether the level L-2 is empty, which is why this reference is placed between parentheses in steps G220, G230.
  • the determination of the attribution level Lk in which the new identifiers are chosen, the peers to be identified and the peers to be notified are chosen according to the event. 3.1.1 Managing the arrival of a new peer in the network
  • the attribution level Lk is the last Lderatt level in which the identifiers have been assigned if this level is not complete, or the Lderatt-1 level following the latter level if the latter level is complete;
  • the new peer NPPi is the only peer Pjm to be identified, with a new identifier chosen in the attribution level Lk;
  • the Pqr peers to be notified are the neighbors of this new peer, and the peers of the attribution level Lk and of the previous level Lk + 1 if the attribution level has been completed by the arrival of the new peer . 3.1.2 Managing the departure of a network peer
  • step G110 if the aforementioned event corresponds to the departure DEP of an outgoing peer PSj of the network (step G110), if the identifier of this outgoing peer belongs to the last Lderatt level in which the identifiers have been assigned no peer is to be identified, and the peer ID of the outgoing peer becomes available.
  • the only peer Pjm to be identified (step G130) is any peer of the last Lderatt level, called "substitute pair", this alternate pair being identified by the identifier of the outgoing peer.
  • the identifier of the alternate peer becomes available;
  • the Pqr peers to be notified are the neighbors of the outgoing peer and the alternate peer and, if the last Lderatt level in which the identifiers were assigned was complete before the departure of the outgoing peer, the peers of this level Lderatt and from the previous Lderatt + 1 level.
  • control method according to the invention further comprises:
  • each peer knows how to behave during the transition.
  • the dimension change may consist of an increase in size, which applies to two partial hypercubes with a depth difference of one level.
  • the change of dimension can also consist of a decrease of the dimension in the case of a single partial hypercube.
  • each of these peers can send a block of data to its peer peer at the top of a second hypercube and initiate another propagation.
  • the two structures disseminate the data blocks with an offset time interval with respect to the case of the single structure.
  • control method according to the invention makes it possible to construct the network of HO pair of dimension n by merging a first sub-network H1, and a second subnet H2, both of dimension n-1, the first subnet Hl having a full level of more than the second subnet H2.
  • the level n-1 of the network HO is constituted by:
  • the pivot identifier is assigned to a so-called "pair pivot" chosen primarily in an incomplete level if the last level of the identifiers attributed to at least one of the two subnets H1, H2 is incomplete, and otherwise, in these last two levels.
  • each of the other levels Lw of order W of said network H0 is constituted by:
  • the management unit 10 is able to apply the reverse mechanism to separate the H0 network into two sub-groups. networks H1, H2 of size n-1, the first subnet having an incomplete level of more than the second subnet.
  • the transition of a broadcast of the data blocks via the sub-networks H1 and H2 to a broadcast via the network HO can be carried out gradually and asynchronously.
  • transmissions can be carried out in parallel in dimension n and n-1.
  • the source can broadcast blocks by adding information indicating that the size of the network will change.
  • the peers receiving this information calculate their new identifier according to their membership in H1 or H2 as previously described. They determine the identifiers of peers with which they are likely to exchange blocks in the new dimension. If these identifiers correspond to peers whose address they do not have, they send a request to the manager (step G63) in order to obtain (step G65) the addresses of the peers corresponding to these new identifiers.
  • the source will emit the blocks by adding the new dimension to them.
  • a peer receiving a block with the old dimension will rediffuse this block according to the distribution rules in the old structure.
  • the same peer receiving a block with the new dimension will rediffuse this block according to the distribution rules in the new structure. This implementation ensures that all peers receive all blocks even during the transition phase from one dimension to another.
  • This same implementation can be used to reduce the size of an HO network of dimension n into two subnets of dimensions n-1.
  • the size n of the network is chosen by the management unit as a function of the number N of peers present in the network so that the number of assigned levels is equal to n / 2.
  • This value maximizes C (n-1, l) n namely the size of the first sub-level, equal in this case to C (n-1, n / 2 - 1). It makes it possible to store the maximum number of peers for a given number k of sub-levels, keeping low deadlines.
  • Its communication means 115 are able to obtain or receive, during a step P10, the dimension n of the network and a unique identifier IDi intended to identify a peer.
  • the processor 111 is able to obtain the binary element bO during a step P10 and to determine, during a step P20, the reference level L to which its identifier IDi belongs.
  • Its communication means 115 enable it to obtain or receive, during a step P30, information enabling it to determine whether this reference level L is complete and whether the level L-1 following this reference level is complete or empty.
  • the processor 111 enables the routing system DAi to determine (steps P50, P60) a rule for broadcasting the data in the network from this information.
  • this rule is the rule R of the n-level complete hypercubes if the level L-1 is complete, in all other cases, another rule R1, R21 or R22 determined taking into account the information received at step P30.
  • the rule RI is chosen if the identifier of the peer considered belongs to a complete level L, the level L-1 being empty. This rule is detailed below.
  • Rule 5 In an incomplete peer group with a complete last level I and an empty 1-1 level, when the theoretical recipient peer is absent, the sending peer sends its data block to the only peer in level I at which the theoretical recipient peer would have sent it according to the general rule.
  • Proposition 6 In an incomplete peer group with a complete last level I and an empty 1-1 level, if routing is performed by applying Rule 3 and Rule 5, all peers receive the blocks of data in time. This ensures that the total delay of broadcast (in the absence of delay of propagation) is n intervals of time.
  • b be a peer of level I supposed to receive a block of a peer of identifier b 'of level 1-1 in a complete group of peers; b 'is not used. Since b 'sends his data block to the upper level, b does not retransmit his block. This transmission can therefore in no case induce delay. Let b "be the peer that would have sent the data block to b ', b" being at level I.
  • b When b "tries to send its block to b', it determines that the identifier b 'is not assigned, and it sends the block to the last recipient of b ', ie b, therefore, receives all its data blocks, and b is the only transmission destination for the peer b "in the time interval.
  • rule RI corresponds to the steps P500 to P560 of FIG.
  • this rule more precisely comprises a determination step P500 according to the general rule R, from the number K of a block numbered BK and the IDi of the peer implementing the invention, an ordered list L04 including identifiers IDTij theoretical peer addressees of this block BK. ;
  • the rule RI comprises a step P510 for determining the theoretical receivers RTKi to which the theoretical recipient would be able to transmit the block numbered BK.
  • the peer implementing the invention obtains, among the theoretical receivers RTKi, the recipient pair PD whose identifier belongs to the level L. This recipient pair PD is then added during a step P390 to the ordered list LDk of peer recipients.
  • the step of adding this peer includes a substep of obtaining the peer's address.
  • Obtaining the address of the peer can consist, for example, in sending a request containing the identifier of the recipient peer to the management unit.
  • the management unit receives this request during a step G63 and sends, during a step G65, a message containing the address of the peer identified in the request.
  • the referral system embodying the invention receives the message containing the address of the recipient peer.
  • the address of the destination pair may be sent by the management unit during a step G60 of sending to each of the referral systems in charge of the present peers, the identifier and the address of each neighbors of these peers present, or during a step G220 sending to each of the peer referral systems Pjm to identify following the detection of an event, the identifier and the address of each of the neighbors of these peers Pjm to identify.
  • This address is received by the system device implementing the invention during a step P25 and can then be stored in the rewritable non-volatile memory 114.
  • the address of the recipient peer can be obtained by reading in this non-volatile memory. volatile rewritable.
  • step P550 When it is determined in step P550 that the theoretical recipient identifier IDTij belongs to the L + 1 level, the peer identified by the identifier IDTij is added to the ordered list LDk of recipient peers.
  • Proposal 6 does not apply when the last level I is incomplete.
  • Rule 5 allows Level I peers to bounce on 1-1 level peers and pass a block to Level I peers.
  • a diffusion structure which uses the relationships of the binomial coefficients.
  • a level I is composed of all binary combinations of length n including I "0". There are C (n, I).
  • n.C (n, I) (1 + 1) .C (n, 1 + 1) + (n-1 + 1) .C (n, 1-1).
  • Proposition 7 The maximum number of peers in an incomplete I level that can receive their data blocks only from the top level is:
  • the emitter of the data block k at peer A identified d n -i ... di we consider the dummy peer B k of level I, in a system of level I complete with the identifier d n- i. ..d k ld k -i ... di obtained by inserting a 1 in position k into the identifier of A of length n-1 (see Table II).
  • Bk Since Bk has a 1 in position k, it retransmits block k. It therefore receives (when present) the block k of a single peer C k of the higher level 1 + 1. Then C k passes this block to peer A. This defines a single ancestor for each block and each peer in the first sub-level.
  • each peer of level 1 + 1 it is not necessary for each peer of level 1 + 1 to transmit more than 1 + 1 blocks to the first sub-level. Indeed, let us consider a level 1 + 1 par C which transmits the block k at time i to level I.
  • par C transmits the block k to the single pair of sub-level identifier I of length n-1 d n ... d k k -i -nd ... di-nldi_i ... di.
  • n transmission opportunities were used by level 1 + 1 peers that should have been addressed to other level 1 + 1 peers. So each peer present in the first sub-level (or possibly its descendants) must transmit n blocks of data to the peers who did not receive them. To identify which blocks of data to return to which peers, we proceed as follows.
  • d n -i be the identifier of length n-1 of a peer A at the first sub-level.
  • n pairs B k by inserting a "1" between d k + i and d k in the identifier of A for k ranging from 1 to n.
  • D k is the peer to whom Ck would have sent block k if A had not been present. This defines a bijection between blocks that have not been received at level 1+ 1 (from level 1+ 1) because of the presence of A at incomplete level I and the blocks retransmitted by peer A (or one of his descendants) at level 1+ 1.
  • Proposition 8 In an incomplete peer group, with an incomplete last level I, if peers are routed according to rules 3, 5, 6, and 7, all peers receive their data blocks.
  • the first sub-level can be interpreted as the maximum of virtual source C (n-1, I) since peers at this level do not rely on peers of equivalent or lower level to receive their blocks of data. These virtual sources may have to broadcast their blocks to any other incomplete Level I peers. If these sources generate linear subnets, the delay of these subnets linearly increases with their sizes. These sources can also generate new partial networks (hypercubes).
  • the higher level 1+ 1 requires that C (n, 1 + 1) blocks be retransmitted from this incomplete level.
  • each peer aside from the source, has a unique ancestor.
  • Each peer receives all his data blocks from his ancestor.
  • Successive sub-levels depending on the distance, in number of jumps, can be defined starting from the first sub-level.
  • the last descendant in a linear network is responsible for transmitting the blocks of data it has received to the neighbors of a Level 1 + 1 virtual source, as defined in Rule 7.
  • a peer belonging to a linear network is assigned an identifier comprising two components. A first component identical to the identifier on n-1 bits at the origin of the linear network to which it belongs. And a second incremented numerical component of the value "one" at each addition of a peer in the linear network. For each data block numbered k, the peers belonging to a linear network and the peer of the level 1 + 1 at which the last peer of the linear network must retransmit the block k form an ordered list LOE, as described in FIG. from a block number k and a generator identifier obtained by placing the bit "1" in position "k” in the identifier at the origin of the linear network.
  • Proposition 9 An incomplete level I can be decomposed into a maximum number of n / n-1 networks, each of size C (n-1, 1), with the exception of the last sub-level.
  • the level I being incomplete, it is composed of less than C (n, I) even. These can be distributed over C (n-1, I) possible linear networks. Each has a maximum length
  • This ratio decreases from n to 1 when I varies from n-1 to 0.
  • the total number of transmissions n + k - 1 is obtained.
  • the data blocks can then experience a maximum delay of kD across the linear subnet and a delay D to return to their destination peer at level 1 + 1, which is a maximum total delay:
  • a rule R21 is chosen if the level L-1 is non-empty, which means that the peer considered is not situated on the last level where the identifiers have been allocated; a rule R22 is chosen if the level L-1 is empty, the level L not being complete.
  • Each of these rules R21, R22 uses routines to obtain a base identifier and an extended ordered list LOE, the obtaining of which will now be described with reference to FIGS. 11, 11a, 11b and 11c.
  • a basic identifier IDBqk is associated with an identifier of any par IDq and Kq number of any numbered data block.
  • this basic identifier is obtained by a step P700 of determining an end sequence SEQq of the identifier of any peer IDq, followed by a step P710 of obtaining said basic identifier IDBqk from said peer identifier any IDq by displacement of the end sequence SEQq in any IDq identifier IDq to a position Kq corresponding to said any block number, the other bits of any IDq identifier IDq being shifted.
  • the basic identifier is obtained by a step P701 of determining an end sequence SEQq of the identifier of any par IDq, followed by a circular permutation step P711 of the bits of said identifier of any par IDq of so as to place said end sequence SEQq at a position Kq corresponding to said any block number.
  • the rules R21 and R22 must use the same method of obtaining the basic identifier.
  • the LOE list is obtained from a generator identifier IDGj and a data block BK numbered K.
  • a level of order G is determined to which this generator identifier IDGj belongs.
  • an ordered list LOljk is determined comprising only part of the identifiers belonging to the generator level G from the generator identifier IDGj and the number K of said block numbered BK.
  • a list LDTjk of the theoretical recipients of the block BK is determined, to which the peer identified by the generator identifier IDGj would be able to transmit said block numbered BK according to said general rule R.
  • the extended ordered list LOE is obtained, during a step P630, by adding the extension IDE identifier in the last position in the first ordered list LOljk.
  • C (n, L) C (n-1, L) + C (n-2, L-1) + ... + C (n-L-1, 0).
  • the first sub-level comprises the peers with a "1" bit on the right, followed by n-1 bits on the left, of which L bits are "0".
  • the second sub-level includes peers with the two most rightmost bits at “10" on the right, followed by n-2 bits on the left, including (L -1) bits at "0", and so on until at last sub-level consisting of the single peer with L bits at "0" on the right followed by a bit at "1", followed by (n - L - 1) bits without "0" on the left.
  • This 'end sequence' is shifted into the peer identifier ' ⁇ '.
  • the identifier resulting from the shift placing the bit at "1" of the end sequence into a position k is "base identifier" of the identifier of A for block k.
  • IDq and a number Kq number block BKq numbered data associates a base identifier obtained by moving the end sequence SEQq in IDq ID identifier to a Kq position corresponding to the number Kq block BKq, the other bits said identifier IDq being offset.
  • the ascendant (usually indirect) of the peer 'A' in the level L + 1 for the data block k is the same as that of its 'base identifier' for the block k, that is to say the ascending, for this data block k, the peer identified by the identifier obtained by the shift of the 'end sequence' in the identifier of A such that the bit "1" is in position k.
  • This identifier corresponds to the identifier of the peer 'A' of the sub-level with the 'end sequence' 10 '.
  • the ascendant, Ak, of A for the data block Bk of number 4 is the same as the ascendant of the peer ⁇ 100 for this block, where it is recognized that ⁇ 100 is the basic identifier of A for block 4
  • This ascendant Ak has for identifier '11000' according to the general rule. It should be noted that other level 2 identifiers may have the same ascendant Ak for the number 4 data block Bk with the same method. For example, the identifier '10011' when placing the T of its 'end sequence ⁇ ' in position 4 gives the identifier ⁇ 100, has the same ascendant Ak for the block of number 4.
  • the set of peers having the same basic identifier, j, for a block of number k can be grouped in a list LOljk.
  • a list LOljk of identifiers in the same level as the recipient. This association is one-to-one.
  • any pair A, for any block k belongs to one and only one list LOljk which can be obtained from the basic identifier of A for the block k.
  • This list can be ordered, which defines a process of broadcasting the Bk block among the peers in the list. This order is arbitrary, but a rule can be established to systematically order the identifiers in the list.
  • a possible rule is to order the identifiers according to the decreasing length of the size of their 'end sequence'. This is illustrated in the sequences presented as an example in Table IV.
  • Any recipient j of a Bk block from a higher level must retransmit that block to a single recipient in the top level according to the general rule.
  • an ordered extended list LOE of identifiers equal to the list LOljk to which the identifier j l has been added at the end of the list.
  • LOE lists obtained from basic identifiers of a level L and of block numbers k, define a possible rule, R22, of retransmission of a k block by the L level peers.
  • Table III represents the ascending and descending for each data block exchanged by par 1 10110 'whose end sequence is "10".
  • the peer ' ⁇ sends the block k, initially intended for a peer j in the next level according to the general rule, to the first peer present in the ordered list LOE.
  • the last identifier in the list LOE belongs to the same level as' ⁇ which is necessarily complete because followed by a non-empty level.
  • a peer Pi in the last level, receiving a numbered block k, will look at which LOE list it belongs to. It will pass the block to the next peer in the list.
  • the set of LOE lists define a process of broadcasting blocks in the last non-empty level, such that any peer present in this level receives all the blocks, whatever the peers present or not in the level.
  • these lists assure that the peers of the level preceding the last level will receive from the lower level the blocks that they did not receive of the level superior and that they lack to complete their block sequences.
  • the set of LOE lists also allow the peers of the higher level, L + 1, to determine to which peers they must transmit a numbered block k when this transmission must be made to the level L according to the general rule.
  • Such a pair A 'of the level L + l having to transmit the block k to a peer A "of the level L, determines the list LOE as would a peer of the level L if A" was its base identifier for the block k .
  • the peer A 'then transmits the block k to the first peer present in the list LOE. This shows how to get the LOE list for rule 21 below.
  • the rule constituting the LOE lists and the distribution of the blocks within these lists ensure that, in the worst case, the blocks broadcast according to these lists will be received after a total number of transmissions less than riog 2 (N) 1 since their emission by the source, where riog 2 (N) 1 is the first integer greater than or equal to the logarithm at base "2" of N.
  • riog 2 (N) 1 is the first integer greater than or equal to the logarithm at base "2" of N.
  • This bound is respected if the dimension "n" of the network is chosen such that 2 nl ⁇ N ⁇ 2 n . This is also the case for blocks received after a transmission according to the general rule.
  • ⁇ "base identifier" of 'A' for a block k is obtained by circularly shifting the entire identifier of 'A' (over the length of the identifier) such that the bit "1" of its end sequence is in position k.
  • a circular rotation of an identifier "a n a n -i ... ai” of length n produces for example the identifier "a n- i ... a n ". All circular rotations can be obtained by repeating the previous circular rotation.
  • the identifier resulting from the rotation placing the bit at "1" of the end sequence at a position k is "base identifier" of the identifier of A for the block k in this second example.
  • the ascendant (generally indirect) of the peer 'A' in the level L + 1 for the data block k is the one that would have its "base identifier" for the block k in the general rule of the hypercube.
  • This identifier corresponds to the identifier of a peer 'A' of the sub-level with the 'end sequence' 10 '.
  • the ascendant, Ak, of A for data block Bk of number 4 is the same as the ascendant of peer '11010' for this block, where we recognize that '11010' is the base identifier of A for the block 4 obtained by circular rotation of 2 positions to the left of the identifier '10110'.
  • This ascendant Ak has for identifier '11000' according to the general rule. It should be noted that other level 2 identifiers may have the same ascendant Ak for the number 4 data block Bk with the same method. For example, the identifier '01011' when placing the T of its 'end sequence ⁇ ' in position 4 gives the identifier '11001', has the same ascendant Ak for the block of number 4.
  • the set of peers having the same basic identifier, j, for a block of number k can be grouped in a list LOl'jk.
  • a major difference from this list by compared to that defined in the previous example is that the LOl'jk list is the same for all k blocks.
  • a peer in an incomplete level belongs to a single mailing list, which limits the number of peers to be notified when he arrives or when he leaves.
  • This list can be ordered either according to an arbitrary order or according to a rule.
  • a possible rule may be to put the peers with the largest end sequence at the top of the list. This is illustrated in the sequences presented by way of example in the following Table VI.
  • Any recipient j of a block Bk from a higher level must retransmit this block to a single recipient jl in the upper level according to the general rule. This is particularly the case for the base identifier with which the list LO'ljk is associated, which identifier has a unique recipient j1 for the block Bk in the level L + 1. So to any list LO'ljk we can associate an extended list LOE of identifiers equal to the list LO'ljk in which we inserted the identifier jl.
  • the LOE lists obtained from basic identifiers of a level L and of block numbers k, define a possible rule, R22, of diffusion of a block k among the peers of the level L and the peers of the level L + 1 to receive the block k of the level L according to the general rule.
  • Table V represents ascending and descending for each data block exchanged by par 1 10110 'whose end sequence is "10".
  • this table we have chosen, by way of example, to order the LOE lists according to the decreasing length of the end sequences by placing at the end of the list the unique level identifier L + 1.
  • the peer 1 10110 ' has the same descendant' ⁇ whatever the block k, descendant whose identifier is obtained by circular rotation of 1 10110 '.
  • the peer ' ⁇ sends the block k, initially intended for a peer j in the next level according to the general rule, to the first peer present in the ordered list LOE.
  • the last identifier in the list LOE belongs to the same level as' ⁇ which is necessarily complete because followed by a non-empty level.
  • a peer Pi in the last level, receiving a numbered block k, will look at which LOE list it belongs to. It will pass the block to the next peer in the list.
  • the set of LOE lists define a process of broadcasting blocks in the last non-empty level, such that any peer present in this level receives all the blocks, whatever the peers present or not in the level.
  • these lists assure that the peers of the level preceding the last level will receive from the lower level the blocks that they did not receive of the level superior and that they lack to complete their block sequences.
  • the rule constituting the LOE lists and the distribution of the blocks within these lists ensure that, in the worst case, the blocks broadcast according to these lists will be received after a total number of transmissions less than riog 2 (N) 1 since their emission by the source, where riog 2 (N) 1 is the first integer greater than or equal to the logarithm at base "2" of N.
  • riog 2 (N) 1 is the first integer greater than or equal to the logarithm at base "2" of N.
  • This bound is respected if the dimension "n" of the network is chosen such that 2 nl ⁇ N ⁇ 2 n .
  • This is also the case for blocks received after a transmission according to the general rule. Since these two rules make it possible to broadcast all the blocks to all the peers, this shows that this broadcasting method allows all the peers to receive all their blocks in less than 2 (N) 1 transmissions since their transmission by the source. .
  • the rule R21 comprises a step P310 for determining, according to the general rule R, from the number K of the block BK and the identifier IDi, of the peer considered of an ordered list L03. with the identifiers IDTij of the theoretical target peers of the block BK.
  • the rule R21 comprises a step P360 of determining the extended ordered list LOE, as described previously with reference to FIG. 11, starting from the identifier IDTij of the theoretical recipient and the number K of the numbered block. BK.
  • the rule R21 makes it possible to obtain a recipient pair PD identified by the first assigned identifier A3 in the extended ordered list LOE.
  • This recipient pair PD is then added during a step P390 to the ordered list LDk of peer recipients.
  • step P320 When it is determined in step P320 that the theoretical recipient identifier IDTij belongs to the level L + 1, the peer identified by the identifier IDTij is added to the ordered list LDk of recipient peers.
  • the step of adding this peer includes a substep of obtaining the peer's address.
  • Obtaining the address of the peer can consist, for example, in sending a request containing the identifier of the recipient peer to the management unit.
  • the management unit receives this request during a step G63 and sends, during a step G65, a message containing the address of the peer identified in the request.
  • the referral system embodying the invention receives the message containing the address of the recipient peer.
  • the address of the destination pair may be sent by the management unit during a step G60 of sending to each of the referral systems in charge of the present peers, the identifier and the address of each neighbors of these peers present, or during a step G220 sending to each of the peer referral systems Pjm to identify following the detection of an event, the identifier and the address of each of the neighbors of these peers Pjm to identify.
  • This address is received by the routing system implementing the invention during a step P25 and can then be stored in the rewritable non-volatile memory 114.
  • the address of the recipient peer can be obtained by reading in this memory non-volatile rewritable.
  • Rule R22 for broadcasting a numbered BK block of data applies if a second condition is satisfied.
  • this second condition is that the reference level L to which the peer implementing the invention belongs is incomplete.
  • the rule R22 comprises a step P400 of determining an identifier IDBik said source identifier, from the identifier IDi of the peer embodying the invention and the number K of the block BK.
  • the rule R22 determines, during a step P410, the extended ordered list LOE, as already described with reference to FIG. 11; from the source identifier IDBik and the number K of the block numbered BK.
  • the rule R22 searches for the identifier IDi of the peer implementing the invention in the extended ordered list LOE.
  • the rule R22 makes it possible to determine a recipient pair PD identified by the first assigned identifier A4 according to the identifier IDi in the extended ordered list LOE. This recipient pair PD is then added during a step P390 to the ordered list LDk of peer recipients.
  • the management unit communicates with the peer-to-peer switching systems present in step G50, in addition to information enabling the referral systems to determine whether the reference level The L to which the identifier of a peer belongs is complete and if the level L1 is complete or empty, information enabling this referral system to determine whether the level L-2 is empty.
  • the management unit sends to the steps G220 and G230, to the peer referral referral systems to be notified and to the peers to be identified, in addition to the information described with reference to the first embodiment, information that allows this peer to determine if the L-2 level is empty.
  • the Pqr peers to be notified of this event in step G220 are, in addition to those described with reference to the first embodiment, the pairs of the level Lk + 2, if the identifier of said new peer NPPi is the first identifier assigned in its level.
  • the Pqr peers to be notified at step G230 comprise, in addition to those described with reference to the first embodiment, the Lk + 2 level peers if the identifier of the outgoing peer PSj or the alternate peer PR was the only one of his level.
  • the referral system must receive information from the management unit enabling it to determine whether the level L is complete, whether the level L-1 is complete or empty, and whether the level L -2 is empty.
  • the referral system uses the general rule R of complete hypercubes if the level L-2 is not empty.
  • the switching system implementing the invention never uses the RI rule.
  • step P190 of adding the recipient pair PD to the ordered list LDk of peer recipients is similar to the step P 390.
  • the hardware architecture of the management unit and the routing system is identical to that described with reference to FIGS. 12 and 13.
  • this peer Pi has the hardware architecture of a computer. It comprises a processor 21, a read-only memory 22, a random access memory 23, a rewritable non-volatile memory 24, communication means 25 with the switching systems and communication means 26 with the other peers of the network.
  • the communication means 25 are internal to this peer and can be constituted by a data bus.
  • the communication means 25 and 26 may be identical.
  • the read-only memory 22 constitutes a support according to the invention, readable by the processor 21 and on which is recorded a computer program PGM3 comprising instructions for carrying out the steps of a diffusion method according to the invention, the main stages of which will be described with reference to FIG.
  • This peer comprises means 26 for receiving digital data broadcast in the form of blocks numbered BK. It receives a block of data during a step T10, it then obtains during a step T20 the ordered list LDk can contain at least one recipient pair of this numbered data block BK, this list being created by a system DA switching device implementing the invention.
  • the referral system can be integrated with said peer, in which case the obtaining step T20 uses internal communication, via a data bus.
  • the obtaining step T20 uses an external communication, via the network.
  • the peer uses the communications means 26 with the other peers of the network to then transmit, during a step T30, the data block BK numbered to each peer belonging to the ordered list LDk of the recipient peers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Ce procédé comporte : une étape (P50, P60) de détermination conformément à une règle (R, R21, R22, R1) de diffusion des données dans le réseau, de l'ensemble des pairs destinataires auxquels un pair doit transmettre un bloc de données numéroté reçu par ce pair, en fonction d'un identifiant (IDi) comprenant des éléments binaires et destiné à identifier ce pair, et d'une dimension n dudit réseau. Ce procédé définit comment cette règle doit être sélectionnée. Dans certains cas seulement, il s'agit de la règle (R) des réseaux hypercubes complets de dimension n.

Description

Procédé de communication de données mis en œuyre par un système d'aiguillage dans un réseau pair à pair
L'invention se situe dans le contexte des réseaux de télécommunications et vise plus particulièrement un procédé de communications dans un réseau de type 'pair à pair' utilisé pour distribuer des données numériques dans le réseau.
De façon connue, les critères de performance suivants peuvent être utilisés pour les réseaux pair à pair: le temps d'initialisation du réseau, l'intervalle de temps entre le moment où le données sont émises par la source et le moment où elles sont reçues par tous les pairs du réseau, l'adaptabilité du réseau à réagir aux arrivées et aux départs des pairs.
Dans l'état actuel de la technique, les réseaux pair à pair ont soit une architecture de diffusion dite « non-structurée », dans laquelle chaque échange de données utiles est précédé d'un échange de données de signalisation entre pairs, soit une architecture de diffusion dite « structurée », dans laquelle chaque pair est apte à déterminer à partir d'une règle de fonctionnement du réseau avec quels pairs il doit communiquer, et quelles données il doit échanger.
Les réseaux à architecture « non-structurée » sont plus adaptables aux arrivées et départs des pairs, mais présentent plusieurs inconvénients, à savoir notamment un encombrement du réseau dû aux messages de signalisation et un de temps de transmission différent entre la source et les différents pairs. Ce deuxième inconvénient dégrade fortement la qualité des transmission des flux de données destinées à être reçues rapidement et avec peu d'écart entre les différents pairs, comme par exemple les flux audio-vidéo contenant des actualités où des événements sportifs.
Les réseaux basés sur une architecture de diffusion de données structurée peuvent transmettre les données dans des temps optimisés et proches pour tous les pairs, mais sont fortement perturbés lorsqu'un pair arrive dans le réseau ou sort du réseau.
1.1 Présentation des réseaux hyper cubes complets
Pour la bonne compréhension de l'invention, on présente de façon préliminaire le modèle de réseaux de pairs connu de l'homme du métier sous le nom de « réseau hypercube complet de dimension n », les avantages et les limites de ce modèle.
1.1.1. Contexte
On se place plus précisément dans le contexte d'un réseau de pairs dans lequel les flux de données sont divisés en blocs de données numérotés (en anglais « chunks »).
Nous supposerons qu'en l'absence de perte dans le réseau, un pair est apte à recevoir et à transmettre un bloc de données par intervalle de temps (slot). 1.1.2. Diffusion optimale et identifiants des pairs
Il a été démontré dans le document « Y. Liu, "On the minimum delay peer-to-peer video streaming : how realtime can it be?" in MULTIMEDIA '07 : Proceedings of the l$h international conférence on Multimedia. New York, NY, USA : ACM, 2007, pp. 127-136» que le temps de diffusion optimal était obtenu lorsque tous les pairs continuent à transmettre un bloc de données jusqu'à ce que tous les pairs l'aient reçu. Le temps de diffusion optimal s'entend en nombre de transmission de blocs.
Cela revient à doubler le nombre de pairs en possession du bloc de données concerné à chaque transmission jusqu'à la dernière.
Une conséquence du résultat démontré dans cet article est que, pour une population de pairs N telle que 2n l < N <2n-l où n est un entier naturel, le temps de diffusion optimal est n intervalles de temps. Nous décrivons maintenant comment les transmissions peuvent être organisées lorsque le nombre N de pairs est de la forme N = 2n -1.
Etant donné que chaque pair transmet un bloc de données par intervalle de temps, un pair recevant un bloc de données doit nécessairement le retransmettre aux autres pairs jusqu'à ce que les N pairs l'aient reçu, avec N = 2° + 7\ + ...+2n l.
Puisque l'on fait l'hypothèse qu'il existe 2n-l pairs, tous arrêtent de transmettre le bloc de données au même moment. Les séquences de transmissions possibles par pairs sont donc les suivantes, chaque élément de la séquence identifiant le numéro du bloc de données à transmettre au cours d'un intervalle de temps correspondant à cet élément, le temps s'écoulant de droite à gauche, du premier vers le dernier élément :
{9, 9, 7, 7, 5, 4, 3, 3, 3}
{9, 9, 9, 6, 5, 4, 4, 4, 1}
{9, 8, 8, 6, 5, 4, 4, 4, 1} II existe une bijection entre ces séquences et les séquences suivantes :
{1, 0, 1, 0, 1, 1, 1, 0, 0}
{1, 0, 0, 1, 1, 1, 0, 0, 1}
{1, 1, 0, 1, 1, 1, 0, 0, 1} dans lesquelles le bit « 1 » est placé aux positions pour lesquelles un bloc de données est transmis pour la dernière fois, le bit « 0 » occupant les autres positions. Un bit à « 1 » dans la séquence identifie l'intervalle de temps au cours duquel un bloc est transmis pour la dernière fois et le nombre de bits « 0 » à sa droite le nombre de fois où ce même bloc est retransmis.
Ces séquences peuvent être répétées périodiquement après n intervalles de temps pour diminuer la complexité. Dans ce cas, une séquence de longueur n, composée d'éléments binaires de valeur « 0 » et de « 1 » suffit pour représenter toutes les séquences de blocs pouvant être émises par un pair.
La séquence composée exclusivement d'éléments binaires de valeur « 0 » est non significative, puisqu'elle correspondrait à l'émission répétée du même bloc de données.
On attribue à chaque pair un identifiant unique de longueur n et la séquence de transmission de blocs de données correspondante. Autrement dit, chaque pair est représenté par une séquence binaire unique qui dicte son comportement.
Par exemple, pour n=5, le réseau comportant 31 pairs, le pair d'identifiant 01001 est programmé pour transmettre la séquence de blocs :
6, 4, 4, 4, 1 (1), suivie par :
11, 9, 9, 9, 6 (2)
Si les séquences de transmissions sont périodiques, les numéros de blocs et les intervalles de temps peuvent être représentés modulo n, et les séquences (1) et (2) par la séquence unique : 1, 4, 4, 4, 1, le temps étant compté de droite à gauche de 1 à 5 avant de se répéter.
Cette relation entre l'identifiant du pair et la séquence de transmission se résume de la façon suivante :
Règle 1 : A l'instant t=k, un pair continue à envoyer le même bloc qu'à l'instant t'=k- 1, si et seulement si la représentation binaire de son identifiant comporte un « 0 » à la position k-1, modulo n.
Ainsi, un pair dont l'identifiant comporte un « 1 » à la position k=t modulo n transmet un bloc pour la dernière fois.
Règle 2 : Un pair avec un « 1 » en position i de son identifiant transmet les blocs de numéro k=i modulo n.
Cette règle permet de définir quels sont les blocs de données transmis par un pair.
Ainsi, si un pair a un « 1 » dans son identifiant à la position k à l'instant t (où t=k modulo n), il transmettra le bloc qui a été transmis par la source à l'instant t-n, soit le bloc k modulo n.
Les règles 1 et 2 permettent de déduire le Lemme 1 suivant :
Lemme 1 : Un pair transmet autant de blocs de données différents dans une séquence de temps n qu'il y a de « 1 » dans la représentation binaire de son identifiant. En particulier, le pair d'identifiant 11111 transmet tous les blocs une seule fois, et le pair d'identifiant 00001 transmet 5 fois les blocs transmis aux instants t tels que t modulo n = 1, ce pair étant le premier à transmettre ces blocs.
Dans la suite de la description on ne distinguera pas les indices de temps ni les numéros de blocs égaux modulo n.
1.1.3. Détermination des destinataires des blocs
On note e, le nombre binaire constitué de « 0 » avec un seul « 1 » en position i. Les règles suivantes définissent à qui un bloc doit être transmis. Cette méthode permet une diffusion sur toute la population N.
Règle 3 : A l'instant t, un pair d'identifiant binaire b envoie un bloc au pair d'identifiant binaire b+et.
Puisque b+et+et=b, le pair destinataire b+et envoie aussi un bloc au pair b à l'instant t.
On notera qu'un pair envoie des blocs et ne reçoit des blocs que de n pairs différents, dits Voisins'. La Table 1 illustre quels blocs sont transmis et reçus par le pair d'identifiant 01001.
Figure imgf000006_0001
Table 1
Proposition 1 : La Règle 1, la Règle 2 et la Règle 3 définissent une structure de diffusion optimale pour un flux dans un réseau de N = 2n - 1 pairs. En effet :
- un pair dont l'identifiant comporte un « 0 » à la position k, reçoit le bloc k à l'instant k pour lequel il s'agit de la dernière transmission du bloc (Lemme 2) ; et
- un pair dont l'identifiant b comporte un « 1 » en position k, reçoit le bloc k' à l'instant k, où k' est la position du prochain « 1 » à la gauche de k dans b (Lemme 3).
Il résulte de ces deux lemmes qu'un pair reçoit tous les blocs, et que pour un pair d'identifiant b donné, les blocs retransmis sont reçus « à temps », à savoir dans l'intervalle de temps (slot) qui précède l'intervalle de temps (slot) au cours duquel le bloc doit être retransmis. Les séquences de transmissions définies précédemment définissent un réseau hypercube complet de dimension n, avec un nombre constant de pairs N = 2n - 1, et un algorithme de diffusion structurée sur ce réseau.
Dans la suite de la description, on appellera « descendants » d'un pair b pour un bloc de données p, les pairs qui reçoivent une copie de ce bloc directement de b ou les descendants de ces pairs pour le bloc de données p.
Proposition 2 : Il résulte de la Règle 3 déjà énoncée qu'un pair n'échange des données qu'avec des pairs de niveau supérieur ou inférieur à son propre niveau mais en aucun cas avec des pairs de son niveau.
Proposition 3 : Selon le Lemme 3, un pair recevant un bloc de données d'un niveau supérieur doit le retransmettre ; conformément au Lemme 2, un pair recevant un bloc de données d'un niveau inférieur ne le retransmet pas.
De façon corollaire (corollaire 1), si un pair de niveau I doit envoyer un bloc de données k fois, cela signifie que ce pair a un descendant direct de niveau 1+1, k-1 descendants directs de niveau 1-1, k-1 descendants de niveau I et tous ses autres descendants de niveau 1-1 ou inférieur. Ses descendants de niveaux 1+1 et I ne retransmettent pas le bloc de données.
Proposition 4 : Un pair de niveau I a n-l descendants directs de niveau 1+1, I descendants directs de niveau 1-1, I descendants de niveau I, tous ses autres descendants de niveaux 1-1 ou inférieur. Ses descendants de niveaux 1+1 et I ne retransmettent pas le bloc de données.
Proposition 5 : Un pair de niveau I a n-l ancêtres directs de niveau 1+1, I ancêtres directs de niveau 1-1, I ancêtres de niveau I, tous ses autres ancêtres de niveaux 1+1 ou supérieur. Les blocs reçus des ascendants de niveau 1-1 et I ne sont pas retransmis.
1.1.4 Délais
On évalue le délai maximum d'un bloc pour un pair A compté depuis l'instant auquel la source l'a transmis.
On évalue tout d'abord de délai en nombre de transmissions. Tous les pairs avec un « 0 » dans leur identifiant reçoivent le bloc n transmissions après la source, avec un délai n. Le pair spécial dont l'identifiant ne comporte que des « 1 » reçoit tous les blocs juste avant la dernière transmission avec un délai n-l.
On s'intéresse ensuite aux délais de propagation. Soit D le temps moyen mis par un bloc de données pour atteindre une destination après sa transmission par la source.
Durant sa vie, un bloc de données peut soit rester dans un pair (autrement dit être transmis plusieurs fois) soit descendre d'un niveau ou monter d'un niveau pour sa dernière transmission. Donc un pair de niveau I avec un « 0 » dans son identifiant reçoit un bloc après qu'il a atteint le niveau 1+1 et a été renvoyé au niveau I. Soit un temps de propagation pour le pair de (n-l+2)D. Le pair spécial dont l'identifiant ne comporte que des « 1 » a un délai de propagation de nD.
Un tel réseau présente des performances très intéressantes, rappelées à la proposition 1 ci-dessus.
Ces délais serviront de comparaison lorsque la structure sera adaptée à des populations de N pairs, N différent de 2n-l, conformément à l'invention.
Malheureusement, il ne s'applique que lorsque le nombre N de pairs dans le réseau est du type 2n-l, et ne sait donc pas traiter de façon satisfaisante l'arrivée d'un pair dans le réseau ou le départ d'un pair du réseau.
L'invention propose notamment de résoudre ces inconvénients.
Objet et résumé de l'invention
Définitions et notations utilisées dans l'invention
Dans la suite de ce document, on appellera 'la règle des réseaux hypercubes complets de dimension n', ou plus simplement Yègle générale', l'algorithme de diffusion structuré présenté au chapitre précédent. Cette règle générale reprend notamment les règles Règle 1... « Règle xxx » énoncées dans ce document.
On définit également les notions suivantes qui seront utilisées par la suite :
- intervalle de temps : intervalle de temps (ou slot en anglais) utilisé par un pair pour envoyer un bloc de données à un seul autre pair ; conformément à l'invention, les intervalles de temps ne sont pas égaux et tiennent compte du temps de propagation et des éventuelles retransmissions du bloc ;
- dimension n du réseau : le nombre maximum de bits (nommés également éléments binaires) utilisés pour coder l'identifiant d'un pair dans le réseau ;
- niveau d'ordre i : l'ensemble des identifiants de pairs (et par extension, l'ensemble des pairs correspondants) ayant un nombre i d'un élément binaire prédéterminé bO (de valeur 0 ou 1 fixée, commune à tous les pairs) ; cette notion s'applique aux identifiants : un identifiant est d'ordre i s'il comprend un nombre i dudit élément binaire bO ;
- niveau complet : niveau dont tous les identifiants ont été attribués à un pair du réseau
- niveau vide : niveau dont aucun identifiant n'a été attribué à un pair du réseau ;
- niveau incomplet : niveau qui n'est ni complet, ni vide.
- règle définissant l'ordre d'attribution des identifiants : pour un entier n, une population de N pairs, avec N < 2n-l, et un élément binaire bO, on attribue à chacun des pairs un identifiant codé sur n bits ; lorsque l'hypercube est incomplet, les identifiants sont attribués selon une règle d'attribution, définissant un ordre d'attribution des niveaux existants compte-tenu de la dimension n du réseau :
soit en affectant en priorité le niveau d'ordre le plus élevé et en procédant ensuite par niveau d'ordre décroissant ;
soit au contraire en affectant en priorité le niveau d'ordre le plus bas et en procédant ensuite par niveau d'ordre croissant.
L'ordre d'attribution des identifiants de même niveau est indifférent. Quel que soit l'ordre d'attribution choisi, dans le cas d'un hypercube incomplet, un ou plusieurs niveaux peuvent ne pas être attribués. Il peut en outre y avoir un niveau attribué seulement partiellement.
Dans la suite de ce document, on choisira « 0 » pour l'élément binaire prédéterminé, et les identifiants seront attribués dans l'ordre décroissant du nombre de « 0 » dans leurs identifiants, à l'exception de l'identifiant ne comportant que des « 0 », réservé à la source. Cet ordre d'attribution est illustré par les listes ordonnées représentées infra aux figures 1 à 3 ;
- niveau suivant le niveau L : niveau dont les identifiants sont attribués après ceux du niveau L , selon la règle d'attribution des identifiants dans le réseau ; lorsque les niveaux sont, conformément à la règle d'attribution, attribués par ordre décroissant, le niveau suivant un niveau d'ordre i est le niveau d'ordre i-1 ;
- niveau précédent le niveau L : niveau dont les identifiants sont attribués avant ceux du niveau L, selon la règle d'attribution des identifiants dans le réseau ; lorsque les niveaux sont, conformément à la règle d'attribution, attribués par ordre décroissant, le niveau précédent un niveau d'ordre i est le niveau d'ordre i+1 ;
- pair présent : un pair ayant une adresse dans le réseau ;
- destinataire théorique d'un bloc de données : pair susceptible de recevoir ce bloc de données, ce destinataire théorique étant déterminé conformément à ladite règle générale, à partir du numéro du bloc de données et de l'identifiant du pair lui transmettant ce bloc. On notera qu'un pair destinataire théorique ainsi déterminé peut être présent ou absent dans le réseau ;
- récepteur théorique : il s'agit d'un destinataire théorique d'un destinataire théorique, autrement dit d'un pair auquel un destinataire théorique serait susceptible de transmettre un bloc de données, un récepteur théorique étant déterminé à partir du numéro du bloc et de l'identifiant du destinataire théorique, selon ladite règle générale.
- pair à identifier : pair devant recevoir un nouvel identifiant suite à la détection d'un événement dans le réseau ; - pair à notifier : pair conservant son identifiant mais devant être informé suite à la détection d'un événement dans le réseau ;
- voisins d'un pair : destinataires théoriques, déterminés selon la règle générale, présents dans le réseau, auxquels ce pair est susceptible d'envoyer un bloc de données.
- séquence de fin : séquence faisant partie d'un identifiant de pair, située dans les positions binaires les moins significatives de l'identifiant et composée d'un nombre de bits à « 0 » (ce nombre pouvant être nul) suivi d'un bit à « 1 » à gauche.
Dans la suite du document on utilise la notation suivante :
C(n,k) = Cn k = n ! / k ! (n-k) !.
L'invention vise un mécanisme structuré de diffusion de données dans un réseau pair à pair avec un nombre quelconque de pairs, qui s'adapte aux arrivées et départs des pairs, et qui change uniquement localement le fonctionnement du réseau.
L'invention vise plus précisément les systèmes d'aiguillage du réseau, les pairs du réseau, l'unité de gestion du réseau et les procédés mis en œuvre par ces entités, respectivement nommés « procédé de communication de données », « procédé de diffusion de données » et « procédé de contrôle ».
Ainsi, et selon un premier aspect, l'invention concerne une unité de gestion apte à être utilisée dans un réseau pair à pair, cette unité de gestion comportant :
- des moyens de sélection d'une dimension n du réseau ;
- des moyens de détermination des pairs présents dans le réseau ;
- des moyens d'attribution à chacun desdits pairs présents d'un identifiant comprenant des éléments binaires, l'attribution des identifiants se faisant en respectant un ordre prédéfini d'attribution des niveaux, un niveau étant constitué par l'ensemble des identifiants comprenant un nombre j d'un élément binaire prédéterminé ;
- des moyens de fourniture, à au moins un système d'aiguillage en charge d'au moins un pair présent :
- de l'identifiant de ce pair présent ; et
- d'informations permettant à ce système d'aiguillage de déterminer le caractère complet, vide ou incomplet du niveau de référence L auquel appartient l'identifiant de ce pair présent et d'au moins un niveau suivant ce niveau de référence dans l'ordre d'attribution des niveaux.
Corrélativement, l'invention concerne un procédé de contrôle d'un réseau pair à pair, ce procédé étant mis en œuvre par une unité de gestion, comportant :
- une étape de sélection d'une dimension n du réseau ;
- une étape de détermination des pairs présents dans le réseau ; - une étape d'attribution à chacun desdits pairs présents d'un identifiant comprenant des éléments binaires, l'attribution des identifiants se faisant en respectant un ordre prédéfini d'attribution des niveaux, un niveau étant constitué par l'ensemble des identifiants comprenant un nombre j d'un élément binaire prédéterminé ;
- une étape de fourniture, à au moins un système d'aiguillage en charge d'au moins un pair présent :
- de l'identifiant de ce pair présent; et
- d'informations permettant à ce système d'aiguillage de déterminer le caractère complet, vide ou incomplet du niveau de référence L auquel appartient l'identifiant de ce pair présent et d'au moins un niveau suivant ce niveau de référence dans l'ordre d'attribution des niveaux.
Dans un mode préféré de réalisation, le procédé de contrôle suivant l'invention comprend en outre une étape de détermination, pour chacun des pairs présents, d'un système d'aiguillage en charge de ce pair présent, apte à créer une liste ordonnée apte à contenir au moins un pair destinataire auquel cet pair présent doit transmettre un bloc de données qu'il a reçu.
Dans un mode de réalisation, le système d'aiguillage peut être incorporé dans le pair dont il est en charge. Dans ce cas l'invention vise par conséquent un procédé de contrôle d'un réseau pair à pair, ce procédé étant mis en œuvre par une unité de gestion, comportant :
- une étape de sélection d'une dimension n du réseau ;
- une étape de détermination des pairs présents dans le réseau ;
- une étape d'attribution à chacun des pairs présents d'un identifiant comprenant des éléments binaires, l'attribution des identifiants se faisant en respectant un ordre prédéfini d'attribution des niveaux, un niveau étant constitué par l'ensemble des identifiants comprenant un nombre j d'un élément binaire prédéterminé ; et
- une étape d'envoi, à chacun des pairs présents,
- de son identifiant; et
- d'informations permettant au pair présent de déterminer le caractère complet, vide ou incomplet du niveau de référence L auquel appartient l'identifiant de ce pair présent et d'au moins un niveau suivant le niveau de référence dans l'ordre d'attribution des niveaux.
L'invention propose de modifier la méthode connue des réseaux hypercubes complets de dimension n, limitée dans l'état actuel de la technique aux réseaux de 2n-l pairs, pour l'appliquer à un réseau pair à pair comportant un nombre quelconque de pairs. Dans la suite de la description, les « autres règles » au sens de l'invention sont référencées « Rxx », afin de ne pas les confondre avec les règles Règle 1, Règle 2 et Règle 3 des réseaux hypercubes complets. D'une façon générale, le rôle principal de l'unité de gestion est de déterminer les niveaux du réseau et d'attribuer les identifiants aux pairs du réseau d'une façon originale, les voisins de chacun des pairs étant déterminés conformément à la règle générale des hypercubes complets de dimension n.
L'unité de gestion fournit ensuite à chaque système d'aiguillage en charge d'un pair présent, l'identifiant de ce pair et des informations lui permettant de déterminer si l'identifiant de ce pair appartient à un niveau complet, et si au moins un de ses niveaux suivants est complet, incomplet ou vide, ainsi que l'adresse et l'identifiant de chacun de ses voisins. Ces informations permettent au système d'aiguillage de déterminer parfaitement le comportement du pair considéré, autrement dit de déterminer quels sont les blocs de données qu'il doit retransmettre et à qui.
De façon très avantageuse, l'unité de gestion selon l'invention est capable de gérer un réseau comportant un nombre quelconque de pairs.
Par ailleurs, il est remarquable de noter que l'unité de gestion ne fournit à un système d'aiguillage en charge d'un pair que l'identifiant de ce pair et des informations locales à l'environnement de ce pair, c'est-à-dire concernant le niveau auquel ce pair appartient, ainsi que au moins un niveau suivant.
Dans un mode particulier de réalisation, les informations envoyées par l'unité de gestion permettent au système d'aiguillage de déterminer si le niveau L-1 est complet ou vide.
Dans un autre mode particulier de réalisation, les informations envoyées par l'unité de gestion permettent en outre au système d'aiguillage de déterminer si le niveau L-2 est vide.
Dans un mode particulier de réalisation, le procédé de contrôle selon l'invention comporte, sur réception d'un événement déterminé, les étapes suivantes :
- détermination d'un niveau d'attribution Lk ;
- détermination des pairs auxquels un nouvel identifiant doit être attribué en raison de l'occurrence de cet événement, appelés « pairs à identifier » ;
- attribution, à au moins un pair à identifier, d'un identifiant appartenant au niveau d'attribution Lk ;
- détermination des pairs conservant leurs identifiants mais impactés par l'événement, dits « pairs à notifier »;
- fourniture, à au moins un système d'aiguillage en charge d'au moins un pair à identifier, du nouvel identifiant de ce pair ;
- fourniture, à au moins un système d'aiguillage en charge d'au moins un pair à identifier ou à notifier, d'informations lui permettant de déterminer au moins :
- si le niveau de référence L, auquel appartient l'identifiant de ce pair à identifier ou à notifier est complet ; - si le niveau L-l, suivant le niveau L dans l'ordre d'attribution des niveaux, est complet ou vide.
Dans un mode particulier de réalisation, l'unité de gestion fournit en outre, à au moins un système d'aiguillage en charge d'au moins un pair à identifier ou à notifier, des d'informations lui permettant de déterminer si le niveau L-2 est vide.
Ainsi, l'unité de gestion selon l'invention détermine les pairs impactés par un événement survenant dans le réseau, et communique aux systèmes d'aiguillage en charge de ces pairs les informations du même type que celles communiquées à l'initialisation du réseau pour qu'ils puissent modifier leurs comportements pour réagir à cet événement.
II est fondamental de bien noter, que l'invention n'impacte le fonctionnement du réseau que localement, seuls les systèmes d'aiguillage en charge des pairs impactés par l'événement recevant des informations de l'unité de gestion.
L'unité de gestion selon l'invention peut en particulier réagir aux événements constitués par l'arrivée d'un nouveau pair dans le réseau lorsqu'un niveau du réseau au moins est incomplet et par le départ d'un pair du réseau.
Par conséquent, dans un mode particulier de réalisation du procédé de contrôle, lorsque l'événement précité correspond à l'arrivée d'un nouveau pair dans un réseau dont au moins un niveau est incomplet :
- ledit niveau d'attribution Lk est :
- le dernier niveau Lderatt, dans lequel les identifiants ont été attribués si ce niveau n'est pas complet ; ou
- le niveau Lderatt -1, suivant le niveau Lderatt dans l'ordre d'attribution des niveaux, si le dernier niveau Lderatt est complet ;
- le seul pair à identifier est le nouveau pair ; et
- les pairs à notifier sont :
- les voisins du nouveau pair ; et
- les pairs du niveau d'attribution Lk et du niveau Lk+1, précédant le niveau Lk dans l'ordre d'attribution des niveaux, lorsque le niveau d'attribution Lk est devenu complet suite à l'arrivée du nouveau pair.
Dans un mode particulier de réalisation, les pairs à notifier comprennent en outre les pairs du niveau Lk+2, si l'identifiant du nouveau pair est le premier identifiant attribué dans son niveau.
Dans un mode particulier de réalisation, lorsque l'événement précité correspond au départ d'un pair sortant parmi les pairs présents :
- lorsque l'identifiant du pair sortant appartient au dernier niveau Lderatt dans lequel les identifiants ont été attribués, aucun pair n'est à identifier, l'identifiant du pair sortant devenant disponible et les pairs à notifier comprennent les voisins du pair sortant ; et lorsque ce n'est pas le cas :
-le seul pair à identifier est un pair quelconque dont l'identifiant appartient au dernier niveau Lderatt, dit « pair remplaçant », ce pair remplaçant étant identifié par l'identifiant du pair sortant, l'identifiant du pair remplaçant devenant disponible ; et
-lesdits pairs à notifier sont les voisins du pair sortant et du pair remplaçant et, si le dernier niveau Lderatt dans lequel les identifiants ont été attribués était complet avant le départ dudit pair sortant, les pairs des niveaux Lderatt et Lderatt+1.
Dans un mode particulier de réalisation de l'invention, les pairs à notifier comprennent en outre les pairs du niveau Lderatt+2 si l'identifiant du pair sortant ou du pair remplaçant était le seul de son niveau.
Dans un mode particulier de réalisation de l'invention, le procédé de contrôle comporte:
- une étape de réception d'une requête émise par un système d'aiguillage pour obtenir l'adresse d'un pair identifié dans la requête ; et
- une étape d'obtention et d'envoi de cette adresse à ce système d'aiguillage.
Cette caractéristique permet avantageusement à un système d'aiguillage d'obtenir l'adresse d'un pair destinataire même si celui-ci qui ne fait pas partie de ses voisins au sens de la règle générale des réseaux hypercubes complets.
Dans un mode particulier de réalisation de l'invention, le procédé selon l'invention permet de construire le réseau contrôlé par l'unité de gestion selon l'invention par fusion de deux sous-réseaux. Cette fusion constitue un événement au sens de l'invention.
Plus précisément, dans un mode particulier de réalisation, le réseau est obtenu par fusion d'un premier sous-réseau, et d'un deuxième sous-réseau, tous les deux de dimension n- 1, le premier sous-réseau ayant un niveau complet de plus que ledit deuxième sous-réseau et le niveau d'ordre n-1 du réseau est constitué par :
- les identifiants appartenant au niveau n-2 du premier sous-réseau, complétés, dans une position dite d'insertion, par l'élément binaire prédéterminé ; et
- par un identifiant dit identifiant pivot, constitué par n-1 éléments binaires prédéterminés, complétés, dans la position d'insertion, par l'élément binaire complémentaire, cet identifiant pivot étant attribué à un pair dit pair pivot choisi dans un niveau incomplet si le dernier niveau des identifiants attribués dans le premier sous-réseau ou le dernier niveau des identifiants attribués dans le deuxième sous-réseau est incomplet, et sinon dans un quelconque de ces deux niveaux si les deux sont complets ;
- chacun des autres niveaux d'ordre W du réseau étant constitué par :
- les identifiants du niveau d'ordre W-l, suivant l'ordre W du premier sous- réseau, ces identifiants étant complétés, dans la position d'insertion, par l'élément binaire prédéterminé ; et par - les identifiants du niveau d'ordre W du deuxième sous-réseau, ces identifiants étant complétés, dans leur position d'insertion, par l'élément binaire complémentaire. Dans un mode particulier de réalisation, la dimension n du réseau est choisie en fonction du nombre N de pairs présents dans le réseau de telle sorte que le nombre de niveaux attribués est égal à n/2 .
Cette caractéristique permet avantageusement d'obtenir des délais de diffusion courts.
Selon un deuxième aspect, l'invention vise aussi un système d'aiguillage apte à être utilisé dans un réseau pair à pair, ce système comportant :
- des moyens de détermination conformément à une règle de diffusion des données dans le réseau, d'un ensemble d'au plus n pairs destinataires auxquels un pair doit transmettre un bloc de données numéroté reçu par ce pair, en fonction d'un identifiant comprenant des éléments binaires et destiné à identifier ledit pair, et de la dimension n dudit réseau,
- ladite règle étant sélectionnée à partir d'informations permettant de déterminer le caractère complet, vide ou incomplet d'un niveau dit de référence L auquel appartient ledit identifiant, et d'au moins un niveau suivant ledit niveau de référence dans un ordre prédéfini d'attribution des niveaux, un niveau étant constitué par l'ensemble des identifiants de pairs comprenant un nombre j d'un élément binaire prédéterminé;
- ladite règle étant:
- la règle des hypercubes complets de dimension n, dite « règle générale » si une condition sur ces informations est satisfaite ;
- une autre règle déterminée en tenant compte de ces informations dans tous les autres cas.
Corrélativement, l'invention vise un procédé de communication de données mis en œuvre par un système d'aiguillage dans un réseau pair à pair, ce procédé comportant :
- une étape de détermination conformément à une règle de diffusion des données dans le réseau, d'un ensemble d'au plus n pairs destinataires auxquels un pair doit transmettre un bloc de données numéroté reçu par ce pair, en fonction d'un identifiant comprenant des éléments binaires et destiné à identifier ce pair, et de la dimension n dudit réseau,
- la règle étant sélectionnée à partir d'informations permettant de déterminer le caractère complet, vide ou incomplet d'un niveau dit de référence L auquel appartient cet identifiant, et d'au moins un niveau suivant ce niveau de référence dans un ordre prédéfini d'attribution des niveaux , un niveau étant constitué par l'ensemble des identifiants de pair comprenant un nombre j d'un élément binaire prédéterminé ;
- la règle étant:
- la règle des hypercubes complets de dimension n, dite « règle générale » si une condition sur lesdites informations est satisfaite ; - une autre règle déterminée en tenant compte desdites informations dans tous les autres cas.
Dans un mode particulier de réalisation, le procédé de communication de données selon l'invention comporte une étape de sélection de règle comprenant:
- une étape d'obtention des informations précitées ; et
- une étape de sélection de la règle à partir de ces informations.
Cette étape de sélection et l'étape de détermination de l'ensemble des pairs destinataires peuvent être mises en œuvre par le pair.
Dans une première variante :
- l'étape de détermination de l'ensemble des pairs destinataires est mise en œuvre par le pair ; et
l'étape de sélection est mise en œuvre par une unité de gestion apte à attribuer les identifiants de pair selon l'ordre prédéfini d'attribution.
Dans une deuxième variante, l'étape de sélection et l'étape de détermination de l'ensemble des pairs destinataires sont mises en œuvre par une unité de gestion apte à attribuer les identifiants de pair selon l'ordre prédéfini d'attribution.
Ainsi, conformément à l'invention, pour chaque pair, un système d'aiguillage déduit le fonctionnement de ce pair à partir des informations qu'il reçoit de l'unité de gestion.
Il est important de noter qu'un système d'aiguillage peut être en charge :
- de la totalité des pairs, le système d'aiguillage pouvant être intégré dans l'unité de gestion ;
d'une partie seulement des pairs du réseau ;
d'un seul pair, le système d'aiguillage pouvant être intégré à ce pair.
Dans ce dernier cas, l'invention vise par conséquent un procédé de communication de données mis en œuvre par un pair dans un réseau pair à pair, ce procédé comportant :
- une étape d'obtention d'un identifiant comprenant des éléments binaires et destiné à identifier ce pair ;
- une étape d'obtention d'une dimension n du réseau,
- une étape de détermination d'un niveau de référence L auquel appartient cet identifiant, un niveau étant constitué par l'ensemble des identifiants de pair comprenant un nombre j d'un élément binaire prédéterminé ;
- une étape d'obtention d'informations permettant au pair mettant en œuvre l'invention de déterminer le caractère complet, vide ou incomplet du niveau de référence et d'au moins un niveau suivant ce niveau de référence dans un ordre prédéfini d'attribution des niveaux ;
- une étape de sélection à partir de ces informations d'une règle de diffusion des données dans le réseau à appliquer par le pair mettant en œuvre l'invention, cette règle étant : - la règle des hypercubes complets de dimension n, dite « règle générale » si une condition sur ces informations est satisfaite ;
- une autre règle déterminée en tenant compte de ces informations dans tous les autres cas.
Ainsi, dans ce mode de réalisation, chaque pair déduit sa propre règle de fonctionnement des informations qu'il reçoit de l'unité de gestion.
Il est remarquable de constater qu'un pair se comporte exactement comme dans un réseau hypercube complet de dimension n de l'art antérieur, lorsque la condition est satisfaite et selon une autre règle dans les autres cas.
Grâce à cette caractéristique, le comportement d'un pair diffère de celui des réseaux hypercubes complets uniquement pour les derniers niveaux attribués.
Comme cela sera expliqué plus en détail plus loin, une autre règle, différente de la règle des hypercubes complets, sert à déterminer pour au moins un pair présent considéré, une liste d'au plus n pairs destinataires, qui tienne compte des pairs destinataires théoriques de ce pair qui sont absents du réseau.
Grâce à cette autre règle, les pairs destinataires théoriques qui sont absents du réseau seront remplacés par au plus un autre pair. D'autres réajustements peuvent en outre être effectués lors de la définition de la liste d'au plus n pairs destinataires qui définit le comportement du pair considéré.
Cette autre règle est appliquée conditionnellement à la situation dans laquelle se trouve le pair dont la liste est à définir. Pour déterminer si cette autre règle s'applique, on détermine notamment si le niveau auquel appartient ce pair est complet, vide ou incomplet. Le niveau suivant dans l'ordre d'attribution des niveaux est également examiné.
On résout ainsi le problème général de la recherche de nouvelles routes de transmission des bloc de données, tout en évitant à chaque pair d'avoir besoin d'émettre à un débit supérieur à un débit d'origine, correspond au débit de ce pair dans l'hypercube complet.
Dans un mode de réalisation de l'invention, les informations précitées permettent au système d'aiguillage de déterminer si le niveau de référence L est complet et si le niveau L-1 est complet ou vide ; la condition est satisfaite si le niveau L-1 est complet.
Dans un autre mode de réalisation de l'invention, les informations précitées permettent au système d'aiguillage de déterminer si le niveau de référence L est complet, si le niveau L-1 est complet ou vide, et si le niveau L-2 est vide ; la condition est satisfaite si le niveau L-2 n'est pas vide.
Dans un mode préféré de réalisation ledit procédé comprend en outre une étape de création d'une liste ordonnée apte à contenir au moins un pair destinataire auquel ledit pair doit transmettre un bloc de données reçu par ledit pair. Cette liste ordonnée de pairs destinataires peut contenir, pour un numéro de bloc de données, zéro, un, ou plusieurs pairs destinataires.
Dans un mode particulier de réalisation, lorsque la condition n'est pas satisfaite, l'autre règle utilise une liste ordonnée étendue obtenue à partir d'un identifiant générateur et d'un bloc de données numéroté par :
- une étape de détermination d'un niveau d'ordre G, dit niveau générateur, auquel appartient l'identifiant générateur ;
- une étape de détermination d'une première liste ordonnée comportant une partie seulement des identifiants appartenant au niveau générateur à partir de l'identifiant générateur et du numéro du bloc numéroté ;
- une étape de détermination d'une liste des destinataires théoriques dudit bloc auxquels le pair identifié par ledit identifiant générateur serait susceptible de transmettre ledit bloc numéroté selon ladite règle générale ;
- une étape d'obtention, dans ladite liste des destinataires théoriques, du pair dont l'identifiant appartient au niveau G+l, précédant le niveau générateur G dans l'ordre d'attribution des niveaux, dit identifiant d'extension ;
- la liste ordonnée étendue étant obtenue en ajoutant l'identifiant d'extension en dernière position dans la première liste ordonnée.
Dans un mode particulier de réalisation, l'autre règle utilise un procédé d'association qui, à un identifiant de pair et à un numéro d'un bloc de données numéroté, associe un identifiant de base.
Dans un mode de réalisation, le procédé d'association comprend :
- une étape de détermination d'une séquence de fin de l'identifiant de pair ;
- une étape d'obtention de l'identifiant de base à partir de l'identifiant de pair par déplacement de la séquence de fin dans l'identifiant de pair à une position correspondant au numéro de bloc, les autres éléments binaires dudit identifiant de pair étant décalés.
Dans un mode de réalisation, le procédé d'association comprend :
- une étape de détermination de la séquence de fin de l'identifiant de pair ;
- une étape d'obtention dudit identifiant de base à partir dudit identifiant de pair par permutation circulaire des éléments binaires de l'identifiant de pair de manière à placer la séquence de fin à une position correspondant au numéro de bloc.
Dans un mode de réalisation, l'étape de détermination d'une première liste ordonnée comprend
- une sous-étape de détermination, pour au moins un identifiant du niveau générateur, d'un identifiant de base associé selon le procédé d'association à cet identifiant du niveau générateur et au numéro du bloc numéroté ; - la première liste ordonnée étant constituée par les identifiants appartenant au niveau générateur, dont les identifiants de base associés sont égaux à cet identifiant générateur.
Dans un mode préféré de réalisation, l'autre règle de diffusion d'un bloc de données numéroté, comprend, lorsqu'une lorsque le niveau L-l n'est pas vide :
- une étape de détermination, conformément à ladite règle générale, à partir du numéro K du bloc de données numéroté et de l'identifiant du pair, d'une deuxième liste ordonnée comportant les identifiants des pairs destinataires théoriques du bloc de données numéroté ;
- et pour chacun des identifiants des destinataires théoriques pris dans l'ordre de ladite deuxième liste ordonnée, si l'identifiant de destinataire théorique appartient au niveau L-l :
- une étape de détermination d'une liste ordonnée étendue à partir de l'identifiant de destinataire théorique et du numéro du bloc de données numéroté ;
- une étape d'obtention du pair destinataire identifié par le premier identifiant attribué dans la liste ordonnée étendue ; et
- une étape d'ajout dudit pair destinataire à la liste de pairs destinataires;
- et, lorsque l'identifiant de destinataire théorique appartient au niveau L+l, précédant le niveau de référence L dans l'ordre d'attribution des niveaux, une étape d'ajout du pair identifié par cet identifiant à la liste de pairs destinataires.
Dans un mode particulier de réalisation, cette caractéristique particulière permet de gérer le comportement d'un pair dont l'identifiant appartient à un niveau L complet, le niveau L- 1 étant incomplet.
Dans un autre mode particulier de réalisation, cette caractéristique particulière permet de gérer le comportement d'un pair dont l'identifiant appartient à un niveau L complet, le niveau L-l étant complet ou incomplet, et le niveau L-2 étant vide.
Dans un autre mode de réalisation, la détermination de l'autre règle de diffusion d'un bloc de données numéroté, comprend, lorsqu'une deuxième condition est satisfaite :
- une étape de détermination d'un identifiant dit « identifiant de base », à partir de l'identifiant de pair et du numéro du bloc ;
- une étape de détermination de ladite liste ordonnée étendue à partir de cet identifiant de base et du numéro du bloc numéroté ;
- une étape de recherche de l'identifiant de pair dans la liste ordonnée étendue ;
- une étape de détermination d'un pair destinataire identifié par le premier identifiant attribué suivant l'identifiant de pair dans ladite liste ordonnée étendue ; et
- une étape d'ajout de ce pair destinataire à ladite liste de pairs destinataires.
Cette caractéristique particulière permet de gérer le comportement d'un pair dont l'identifiant appartient au dernier niveau. Dans un mode particulier de réalisation, la deuxième condition est satisfaite lorsque le niveau L-1 est vide, le niveau L étant incomplet.
Dans un autre mode particulier de réalisation, la deuxième condition est satisfaite lorsque le niveau L-1 est vide.
Dans un mode particulier de réalisation, la détermination de l'autre règle de diffusion d'un bloc de données numéroté, comprend, lorsque le niveau L-1 est vide, et lorsque le niveau de référence L est complet, les étapes suivantes :
- une étape de détermination conformément à ladite règle générale, à partir du numéro dudit bloc numéroté et dudit identifiant, d'une quatrième liste ordonnée comportant les identifiants des pairs destinataires théoriques dudit bloc ;
- et pour chacun desdits identifiants des destinataires théoriques pris dans l'ordre de ladite quatrième liste ordonnée, si ledit identifiant de destinataire théorique appartient audit niveau L-1,
- une étape de détermination des récepteurs théoriques auxquels ledit destinataire théorique serait susceptible de transmettre ledit bloc numéroté ;
- une étape d'obtention, parmi lesdits récepteurs théoriques, du pair destinataire dont l'identifiant appartient au niveau de référence L ; et
- une étape d'ajout dudit pair destinataire à ladite liste de pairs destinataires;
- et, lorsque ledit identifiant de destinataire théorique appartient au niveau L+l, une étape d'ajout du pair identifié par cet identifiant à ladite liste de pairs destinataires.
Dans ce mode de réalisation, un pair du niveau L se substitue à ses destinataires théoriques de niveau L-1 absents pour émettre les blocs de données vers les pairs destinataires de son propre niveau L. Selon un troisième aspect, l'invention vise aussi un pair apte à être utilisé dans un réseau pair à pair, ce comportant :
- des moyens de réception d'un bloc de données numéroté ;
- des moyens d'obtention des adresses de l'ensemble des pairs destinataires du bloc de données numéroté, ces pairs destinataires étant déterminés par un système d'aiguillage mettant en œuvre un procédé de communication de données tel que mentionné ci-dessus ; et
- des moyens de transmission du bloc de données numéroté à au moins un pair destinataire de cet ensemble.
Dans un mode particulier de réalisation, le pair selon l'invention comporte en outre un sous-système pour déterminer cet ensemble, ce sous-système étant conforme à un sous- système de détermination de pairs destinataires d'un système d'aiguillage tel mentionné ci- dessus. Dans un mode particulier de réalisation, le pair selon l'invention comporte en outre un sous-système pour sélectionner une règle utilisée pour déterminer cet ensemble, ce sous- système étant conforme à un sous-système de sélection de règle d'un système d'aiguillage tel que mentionné ci-dessus.
L'invention concerne aussi un procédé de diffusion de données mis en œuvre par un pair dans un réseau pair à pair, ce procédé comportant :
- une étape de réception d'un bloc de données numéroté ;
- une étape d'obtention des adresses de l'ensemble des pairs destinataires du bloc, ces pairs destinataires étant déterminés par un système d'aiguillage mettant en œuvre un procédé de communication de données tel mentionné ci-dessus ; et
- une étape de transmission dudit bloc de données numéroté à au moins un pair destinataire dudit ensemble.
Dans un mode particulier de réalisation, le système d'aiguillage selon l'invention comporte :
- un sous-système de sélection de règle comportant
des moyens d'obtention desdites informations ; et
des moyens de sélection de la règle à partir desdites informations ; et un sous-système de détermination de pairs destinataires comprenant lesdits moyens de détermination de l'ensemble des pairs destinataires.
Dans un mode particulier de réalisation de l'invention, l'unité de gestion selon l'invention comporte en outre un sous-système pour sélectionner une règle utilisée pour déterminer l'ensemble des pairs destinataires d'un bloc de données numéroté reçu par un pair, ce sous-système étant conforme à un sous-système de sélection de règle d'un système d'aiguillage tel que mentionné ci-dessus.
L'unité de gestion selon l'invention peut aussi comporter un sous-système pour déterminer cet ensemble, ce sous-système étant conforme à un sous-système de détermination de pairs destinataires d'un système d'aiguillage tel que mentionné ci-dessus.
Dans un mode particulier de réalisation, les différentes étapes du procédé de communication de données, les différentes étapes du procédé de contrôle et différentes étapes du procédé de diffusion selon l'invention sont déterminées par des instructions de programmes d'ordinateurs.
En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre d'au moins une partie des étapes d'un procédé de communication de données tel que mentionné ci-dessus. Dans un mode particulier de réalisation, ce programme comporte des instructions pour ne mettre en œuvre qu'une étape parmi l'étape de sélection de règle et l'étape de détermination des pairs destinataires. Dans un autre mode de réalisation, il comporte des instructions pour mettre en œuvre ces deux étapes.
De même, l'invention vise également un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes du procédé de contrôle tel que mentionné ci-dessus.
L'invention vise également un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre par un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes du procédé de diffusion tel que mentionné ci-dessus.
Ces programmes peuvent utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Brève description des dessins
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous en référence aux dessins qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :
- la figure 1 représente des niveaux d'identifiants de pairs dans un réseau de dimension 4, conformément à un mode particulier de réalisation de l'invention ;
- la figure 2 représente deux exemples d'ordres d'attribution des niveaux de la figure
1 selon un mode particulier de réalisation de l'invention ; - la figure 3 représente, sous forme d'organigramme, les principales étapes d'un procédé de diffusion selon un mode particulier de réalisation de l'invention ;
la figure 3a représente un pair conforme à un mode particulier de réalisation de l'invention ;
- les figures 4 et 5 représentent, sous forme d'organigramme, les principales étapes d'un procédé de contrôle, mis en œuvre par une unité de gestion conforme à un mode particulier de réalisation de l'invention ;
- la figure 6 représente un changement de dimension de réseau effectué par une unité de gestion conformément à un mode particulier de réalisation de l'invention ;
- les figures 7 et 8 représentent, sous forme d'organigramme, les principales étapes d'un procédé de communication de données, mis en œuvre par un dispositif de communication de données selon un premier mode particulier de réalisation de l'invention ;
- les figures 9 et 10 représentent, sous forme d'organigramme, les principales étapes d'un procédé de communication de données, mis en œuvre par un dispositif de communication de données selon un deuxième mode particulier de réalisation de l'invention ;
- les figures 11 et lia représentent un exemple d'obtention d'une liste ordonnée étendue conformément à un mode particulier de réalisation de l'invention ;
- la figure 11b représente un exemple d'obtention d'un identifiant de base conformément à un mode particulier de réalisation de l'invention ;
- la figure 11c représente un exemple d'obtention d'un identifiant de base conformément à un autre mode particulier de réalisation de l'invention ;
- la figure 12 représente un système d'aiguillage conforme à un mode particulier de réalisation de l'invention, sous la forme d'un dispositif d'aiguillage ; et
- la figure 13 représente une unité de gestion conforme à un mode particulier de réalisation de l'invention.
Description détaillée d'un premier mode de réalisation de l'invention
Nous allons maintenant décrire une unité de gestion 10 et un système d'aiguillage DA conformes à un premier mode de réalisation de l'invention.
On rappelle que l'invention se situe dans le contexte d'un réseau de N pairs, ce réseau étant organisé en niveaux ordonnés.
La figure 1 représente, dans un réseau de dimension 4, quatre niveaux d'identifiants, ces niveaux L3, L2, Ll, L0 étant ordonnés dans l'ordre décroissant du nombre de « 0 » dans leurs identifiants.
Conformément au mode particulier de réalisation de l'invention décrit ici, les identifiants des pairs sont attribués par l'unité de gestion 10, par ordre de niveau décroissant, et pris dans un ordre quelconque au sein d'un même niveau. La figure 2 présente deux exemples d'ordres d'attribution.
La figure 13 représente une unité de gestion 10 conforme à un mode particulier de réalisation.
Dans le mode de réalisation décrit ici, cette unité de gestion 10 a l'architecture matérielle d'un ordinateur. Elle comporte un processeur 11, une mémoire morte 12, une mémoire vive 13, une mémoire non volatile réinscriptible 14 et des moyens de communication 15 avec les systèmes d'aiguillage en charge des pairs du réseau. Ces moyens de communication 15 peuvent être de moyens de communication interne, via un bus de de données, et/ou externe via le réseau.
La mémoire morte 12 constitue un support conforme à l'invention, lisible par le processeur 11 et sur lequel est enregistré un programme d'ordinateur PGM2 comprenant des instructions pour l'exécution des étapes d'un procédé de contrôle selon l'invention dont les principales étapes seront décrites en référence aux figures 4 à 6.
La mémoire morte 12 mémorise aussi un élément binaire bO, en l'espèce le bit « 0 », ce bit étant utilisé par l'unité de gestion 10 pour construire les identifiants des pairs comme décrit à la figure 1.
La mémoire non volatile réinscriptible 14 comporte un registre pour mémoriser la dimension n du réseau. Cette dimension n doit respecter l'inégalité N < 2n où N est le nombre de pairs dans le réseau.
Dans l'exemple de réalisation décrit ici, l'unité de gestion 10 mémorise les adresses ADij des pairs présents du réseau dans une base de données 17.
La figure 12 représente un système d'aiguillage DA conforme à un premier mode particulier de réalisation de l'invention.
Dans le mode de réalisation décrit ici, ce système d'aiguillage DA est un dispositif ayant l'architecture matérielle d'un ordinateur. Il comporte un processeur 111, une mémoire morte 112, une mémoire vive 113, une mémoire non volatile réinscriptible 114 et des moyens de communication 115 avec l'unité de gestion 10 et avec les pairs du réseau. On notera que ces moyens de communication 115 peuvent être de moyens de communication interne, via un bus de de données, et/ou externe via le réseau selon que le système d'aiguillage est incorporé ou non dans l'unité de gestion.
La mémoire morte 112 constitue un support conforme à l'invention, lisible par le processeur 111 et sur lequel est enregistré un programme d'ordinateur PGM1 comprenant des instructions pour l'exécution des étapes d'un procédé de communication de données selon l'invention dont les principales étapes seront décrites en référence aux figures 7 , 8, 11 et l ia. La mémoire non volatile réinscriptible 114 du système d'aiguillage DA comporte en particulier des registres pour mémoriser pour chaque pair dont il a la charge, un identifiant unique IDi reçu de l'unité de gestion 10.
Le processeur 11, la mémoire vive 12 et la mémoire morte 13 de l'unité de gestion 10 sont aptes à déterminer les identifiants de chacun des niveaux du réseau.
Dans le mode de réalisation décrit ici, l'unité de gestion 10 comporte, dans sa mémoire non volatile réinscriptible 14, les identifiants des pairs PPim présents dans le réseau.
En référence à la figure 4, l'unité de gestion 10 est apte à déterminer, au cours d'une étape G10, la dimension n du réseau, et à la mémoriser dans la mémoire non volatile réinscriptible 14.
Le programme PGM2 comporte des instructions pour permettre à l'unité de gestion 10, lorsqu'elles sont exécutées par le processeur 11, de déterminer, au cours d'une étape G25, les pairs PPim présents dans le réseau.
L'unité de gestion 10 est apte à attribuer, au cours d'une étape G30, un identifiant unique à chacun des pairs présents. Dans le mode de réalisation décrit ici, les identifiants sont attribués aux pairs dans l'ordre décroissant des niveaux, les identifiants étant pris dans un ordre quelconque au sein d'un même niveau. Elle utilise pour cela, l'élément binaire bO, en l'espèce « 0 », cet élément étant lu dans la mémoire morte 12 au cours de la même étape G10.
Dans cet exemple, les pairs sont ordonnés selon le nombre de « 0 » dans leurs identifiants, comme cela est représenté à la figure 1. Pour un entier n et une population N < 2n, l'unité de gestion 10 attribue aux pairs un identifiant, les identifiants ayant le plus de « 0 » possibles étant attribués en premier. L'identifiant particulier ayant tous les bits à 0 est, dans les exemples décrits, réservé pour la source du flux de données. L'ordre d'attribution parmi les identifiants ayant le même nombre de bits à « 0 » est indifférent. L'ordre d'attribution peut être illustré par les listes ordonnées de la figure 2.
Dans un mode de réalisation, l'unité de gestion détermine, lors d'une étape G26, pour chacun desdits pairs présents PPim, un système d'aiguillage DAi en charge de ce pair.
Le programme PGM2 comporte des instructions pour permettre à l'unité de gestion 10, lorsqu'elles sont exécutées par le processeur 11, de déterminer, au cours d'une étape G40, les voisins VPij de chacun des pairs présents PPim, en appliquant la règle générale R déjà décrite des réseaux hypercubes complets de dimension n.
On rappelle que les voisins d'un pair sont les destinataires théoriques présents auquel ce pair est susceptible d'envoyer un bloc de données.
Dans ce premier mode de réalisation, l'unité de gestion 10 est apte à fournir, au cours d'une étape G50, à chaque système d'aiguillage DAi en charge d'au moins un pair présent PPim l'identifiant IDim de ce pair PPim et des informations permettant de déterminer si le niveau de référence L auquel appartient l'identifiant IDim est complet, et si le niveau L-l suivant ce niveau de référence dans l'ordre des niveaux est vide ou complet. Ces informations peuvent par exemple être constituées par le nombre total de niveaux dans lesquels des identifiants ont été attribués ainsi que le dernier niveau complet.
L'unité de gestion 10 est en outre apte à fournir, au cours d'une étape G60, à chacun des pairs présents PPim, l'identifiant et l'adresse de chacun de ses voisins.
3.1 Fonctionnement général de l'unité de gestion
Dans le premier mode de réalisation décrit ici, l'unité de gestion 10 selon l'invention est apte à détecter un certain nombre d'événements impactant le réseau aux étapes G70 ou G110 qui seront décrites ci-dessous.
Lorsqu'un événement est détecté, l'unité de gestion détermine, au cours d'une étape G90 ou G130, d'éventuels pairs Pjm à identifier et le cas échéant, l'identifiant de ces pairs, ces identifiants étant choisis (étape G200) dans un niveau dit d'attribution Lk déterminé à l'étape G80 ou G120.
En référence à la figure 5, au cours d'une étape G210, l'unité de gestion détermine ensuite quels sont les pairs Pqr à notifier suite à l'événement détecté.
L'unité de gestion 10 envoie ensuite (étape G220) à chacun des systèmes d'aiguillage DAj en charge d'au moins un pair à identifier, le nouvel identifiant IDjm de ce pair, l'identifiant et l'adresse de chacun de ses voisins, et des informations lui permettant de déterminer si le niveau de référence L auquel appartient son identifiant est complet, et si le niveau L-l suivant ce niveau de référence dans l'ordre des niveaux est vide ou complet.
Puis l'unité de gestion envoie (étape G230) à chacun des systèmes d'aiguillage DAq en charge d'au moins un pair Pqr à notifier, des informations lui permettant de déterminer, si le niveau de référence L auquel appartient son identifiant est complet, et si le niveau L-l suivant ce niveau de référence dans l'ordre des niveaux est vide ou complet. L'identifiant des pairs à notifier n'est pas modifié.
Dans ce premier mode de réalisation, il n'est pas nécessaire que l'unité de gestion 10 envoie des informations aux systèmes d'aiguillage leur permettant de déterminer si le niveau L- 2 est vide, ce qui explique pourquoi cette référence est placée entre parenthèses aux étapes G220, G230.
Conformément à l'invention, la détermination du niveau Lk d'attribution dans lequel les nouveaux identifiants sont choisis, les pairs à identifier et les pairs à notifier sont choisis en fonction de l'événement. 3.1.1 Gestion de l'arrivée d'un nouveau pair dans le réseau
Dans le mode de réalisation décrit ici, si l'événement précité correspond à l'arrivée ARR d'un nouveau pair NPPi dans le réseau, un niveau au moins de ce réseau étant incomplet : - le niveau d'attribution Lk (étape G80) est le dernier niveau Lderatt dans lequel les identifiants ont été attribués si ce niveau n'est pas complet, ou le niveau Lderatt-1 suivant ce dernier niveau si ce dernier niveau est complet ;
- le nouveau pair NPPi est le seul pair Pjm à identifier, avec un nouvel identifiant choisi dans le niveau d'attribution Lk ; et
- les pairs Pqr à notifier (étape G210) sont les voisins de ce nouveau pair, et les pairs du niveau d'attribution Lk et du niveau précédent Lk+1 si le niveau d'attribution a été complété par l'arrivée du nouveau pair. 3.1.2 Gestion du départ d'un pair du réseau
Dans le mode de réalisation décrit ici, si l'événement précité correspond au départ DEP d'un pair sortant PSj du réseau (étape G110), si l'identifiant de ce pair sortant appartient au dernier niveau Lderatt dans lequel les identifiants ont été attribués, aucun pair n'est à identifier, et l'identifiant du pair sortant devient disponible.
En revanche, si l'identifiant du pair sortant n'appartient pas au dernier niveau Lderatt dans lequel les identifiants ont été attribués :
- le seul pair Pjm à identifier (étape G130) est un pair quelconque du dernier niveau Lderatt, dit « pair remplaçant », ce pair remplaçant étant identifié par l'identifiant du pair sortant. L'identifiant du pair remplaçant devient disponible ;
- les pairs Pqr à notifier (étape G210) sont les voisins du pair sortant et du pair remplaçant et, si le dernier niveau Lderatt dans lequel les identifiants ont été attribués était complet avant le départ du pair sortant, les pairs de ce niveau Lderatt et du niveau Lderatt+1 précédent. 3.1.3 Communication d'adresse
Dans le mode de réalisation décrit ici, le procédé de contrôle selon l'invention comporte en outre :
- une étape G63 de réception d'une requête émise par un système d'aiguillage pour obtenir l'adresse d'un pair identifié dans la requête ; et
- une étape G65 d'obtention et d'envoi de cette adresse à ce système d'aiguillage.
3.1.4 Fusion de deux sous-réseaux
Nous décrivons un réseau de diffusion de données comportant N pairs, basé sur un hypercube partiel, avec N < 2n, n entier quelconque, où les délais croissent comme n.
Lorsque le nombre N varie, il peut être nécessaire d'augmenter la dimension n si N augmente, ou il peut être souhaitable, pour des questions de délais, de diminuer la dimension n si N diminue. Là encore, conformément à l'invention, chaque pair sait déterminer comment se comporter pendant la transition.
Le changement de dimension peut consister en une augmentation de dimension, celle-ci s'appliquant à deux réseaux hypercubes partiels avec une différence de profondeur de un niveau.
Le changement de dimension peut aussi consister en une diminution de la dimension dans le cas d'un seul hypercube partiel.
On rappelle qu'une même source peut diffuser des blocs de données dans deux réseaux hypercubes. Selon la Règle 3, les n pairs du premier niveau n-1 doivent théoriquement envoyer un bloc au niveau supérieur, c'est à dire à la source.
Puisque c'est superflu, chacun de ces pairs peut envoyer un bloc de données à son pair homologue au sommet d'un second hypercube et initier une autre propagation.
Si de plus, ces pairs envoient ce bloc pendant le premier intervalle de temps après la réception du bloc émis par la source, les deux structures disséminent les blocs de données avec un intervalle de temps de décalage par rapport au cas de la structure unique.
On se place maintenant dans ce contexte.
Dans un mode de réalisation de l'invention illustré à la figure 6, le procédé de contrôle selon l'invention permet de construire le réseau de pair HO de dimension n par fusion d'un premier sous-réseau Hl, et d'un deuxième sous-réseau H2, tous les deux de dimension n-1, le premier sous-réseau Hl ayant un niveau complet de plus que le deuxième sous-réseau H2.
Dans ce mode de réalisation, le niveau n-1 du réseau HO est constitué par :
- les identifiants appartenant au niveau n-2 du premier sous-réseau Hl, ces identifiants étant complétés, dans une position dite d'insertion, par un bit « 0 » ; et par
- un identifiant pivot dont l'identifiant est constitué par n-1 bits « 0 » complétés, dans la position d'insertion par l'élément binaire « 1 ».
Dans ce mode de réalisation, l'identifiant pivot est attribué à un pair dit « pair pivot » choisi prioritairement dans un niveau incomplet si le dernier niveau des identifiants attribués d'au moins un des deux sous-réseaux Hl, H2 est incomplet, et sinon, dans de ces deux derniers niveaux.
Dans le mode de réalisation décrit ici, chacun des autres niveaux Lw d'ordre W dudit réseau H0 est constitué par :
- les identifiants du niveau d'ordre W-l du premier sous-réseau Hl, ces identifiants étant complétés, dans la position d'insertion, par le bit « 0 » ; et par
- les identifiants du même niveau d'ordre W du deuxième sous-réseau H2, ces identifiants étant complétés, dans la position d'insertion, par le bit « 1 ».
Inversement, dans un mode particulier de réalisation, l'unité de gestion 10 selon l'invention est apte à appliquer le mécanisme inverse pour séparer le réseau H0 en deux sous- réseaux Hl, H2 de dimension n-1, le premier sous réseau ayant un niveau incomplet de plus que le deuxième sous réseau.
Plus précisément, pour tout niveau I tel que l0+l <= I < n, on compose un niveau I de HO en joignant le niveau 1-1 de Hl et le niveau I de H2. On obtient ainsi le nombre désiré de pairs dans le niveau I :
C(n, 1-1) + C(n, I) = C(n+1, I)
Le cas particulier du niveau l=n est obtenu avec le niveau n-1 de Hl et un pair additionnel du niveau incomplet de H 1 ou H2.
La transition d'une diffusion des blocs de données via les sous-réseaux Hl et H2 vers une diffusion via le réseau HO peut s'effectuer progressivement et de façon asynchrone. En particulier des transmissions peuvent s'effectuer en parallèle en dimension n et n-1. Pour cela la source peut diffuser des blocs en leur adjoignant une information indiquant que la dimension du réseau va changer. Les pairs recevant cette information calculent leur nouvel identifiant suivant leur appartenance à Hl ou H2 comme décrit précédemment. Ils déterminent les identifiants des pairs avec lesquels ils sont susceptibles d'échanger des blocs dans la nouvelle dimension. Si ces identifiants correspondent à des pairs dont ils ne possèdent pas l'adresse, ils envoient une requête au gestionnaire (étape G63) afin d'obtenir (étape G65) les adresses des pairs correspondants à ces nouveaux identifiants. La source émettra les blocs en leur adjoignant la nouvelle dimension. Un pair recevant un bloc avec l'ancienne dimension rediffusera ce bloc suivant les règles de diffusion dans l'ancienne structure. Un même pair recevant un bloc avec la nouvelle dimension rediffusera ce bloc suivant les règles de diffusion dans la nouvelle structure. Cette implémentation assure que tous les pairs reçoivent tous les blocs y compris pendant la phase de transition d'une dimension à une autre.
Cette même implémentation peut être utilisée pour réduire la dimension d'un réseau HO de dimension n en deux sous-réseaux de dimensions n-1.
Dans un mode particulier de réalisation, la dimension n du réseau est choisie par l'unité de gestion en fonction du nombre N de pairs présents dans le réseau de telle sorte que le nombre de niveaux attribués est égal à n/2.
En gardant une taille limitée pour la profondeur k des réseaux linéaires, et des demi- hypercubes, on obtient à la fois des délais de propagation et des délais de transmission courts.
On effet, on note que les hypercubes partiels avec un nombre de niveaux égal à n/2 ont des propriétés intéressantes en terme de performance, comme démontré ci-dessous.
On suppose qu'il existe un niveau I incomplet avec I = (n/2) - 1
Cette valeur maximise C(n-1, l)n à savoir la taille du premier sous-niveau, égale dans ce cas à C(n-1, n/2 - 1). Elle permet de stocker le nombre maximum de pairs pour un nombre k donné de sous-niveaux, en gardant des délais faibles.
Comme I <= n/2, n/(n-l) <=2 et deux sous-niveaux suffisent pour composer le niveau I complet suivant avec I = (n/2) - 1.
On suppose qu'il existe k de ces sous-niveaux et on obtient que pour un hypercube incomplet de profondeur I = (n/2) -1, le délai maximum en terme de temps de transmission est n + k - 1 (5)
et en terme de délai total de propagation
((n/2) + k + 2) (6)
En gardant une taille limitée pour la profondeur k des réseaux linéaires, et des demi- hypercubes, on obtient à la fois des délais de propagation et des délais de transmission courts.
3.2 Fonctionnement général d'un système d'aiguillage du réseau
On décrit maintenant le comportement d'un système d'aiguillage DA dans un premier mode de réalisation.
Il met en œuvre le procédé de communication de la figure 7.
Ses moyens 115 de communication sont aptes à obtenir ou à recevoir, au cours d'une étape P10, la dimension n du réseau et un identifiant unique IDi destiné à identifier un pair.
Le processeur 111 est apte à obtenir l'élément binaire bO au cours d'une étape P10 et à déterminer, au cours d'une étape P20 le niveau L de référence auquel appartient son identifiant IDi.
Ses moyens 115 de communication lui permettent d'obtenir ou de recevoir, au cours d'une étape P30 des informations lui permettant de déterminer si ce niveau de référence L est complet et si le niveau L-1 suivant ce niveau de référence est complet ou vide.
Le processeur 111 permet au système d'aiguillage DAi de déterminer (étapes P50, P60) une règle de diffusion des données dans le réseau à partir de ces informations.
Dans ce premier mode de réalisation, cette règle est la règle R des hypercubes complets de niveau n si le niveau L-1 est complet, dans tous les autres cas, une autre règle RI, R21 ou R22 déterminée en tenant compte des informations reçues à l'étape P30.
Plus précisément, dans ce mode de réalisation, la règle RI est choisie si l'identifiant du pair considéré appartient à un niveau L complet, le niveau L-1 étant vide. Cette règle est détaillée ci-dessous.
3.2.1 Règle RI
On considère d'abord une réalisation possible dans le cas où la population est telle que le dernier niveau d'attribution est complet, ce qui signifie qu'il y a suffisamment de pairs présents pour utiliser tous les identifiants dans ce dernier niveau. On utilise alors la règle de routage suivante : Règle 5 : Dans un groupe de pairs incomplet avec un dernier niveau I complet et un niveau 1-1 vide, lorsque le pair destinataire théorique est absent, le pair émetteur envoie son bloc de données au seul pair du niveau I auquel le pair destinataire théorique l'aurait envoyé d'après la règle générale.
Proposition 6 : Dans un groupe de pairs incomplet avec un dernier niveau I complet et un niveau 1-1 vide, si le routage est effectué en appliquant la Règle 3 et la Règle 5, tous les pairs reçoivent les blocs de données à temps. Cela garantit que le délai total de diffusion (en l'absence de délai de propagation) est de n intervalles de temps.
En effet, les blocs de données sont propagés correctement et dans les temps. Soit b un pair de niveau I supposé recevoir un bloc d'un pair d'identifiant b' de niveau 1-1 dans un groupe complet de pairs ; b' est inutilisé. Puisque b' envoie son bloc de données au niveau supérieur, b ne retransmet pas son bloc. Cette transmission ne peut donc en aucun cas induire de retard. Soit b" le pair qui aurait envoyé le bloc de données à b', b" étant au niveau I. Lorsque b" essaie d'envoyer son bloc à b', il détermine que l'identifiant b' n'est pas attribué, et il envoie le bloc au dernier destinataire de b' soit b. b reçoit donc tous ses blocs de données, et b est l'unique destination de transmission pour le pair b" dans l'intervalle de temps.
Dans cette démonstration :
b est un récepteur théorique au sens de l'invention ;
- b' est le destinataire théorique absent au sens de l'invention ; et
b" est le pair qui met en œuvre l'invention.
Une implémentation possible de la règle RI correspond aux étapes P500 à P560 de la figure 8.
Dans ce mode de réalisation, cette règle comporte plus précisément une étape P500 de détermination conformément à la règle R générale, à partir du numéro K d'un bloc numéroté BK et de l'identifiant IDi du pair mettant en œuvre l'invention, d'une liste ordonnée L04 comportant les identifiants IDTij des pairs destinataires théoriques de ce bloc BK. ;
Puis, pour chacun des identifiants IDTij des destinataires théoriques pris dans l'ordre de la liste ordonnée L04, on teste au cours d'une étape P550 si cet identifiant IDTij appartient au niveau L-l.
Si c'est le cas, la règle RI comporte une étape P510 de détermination des récepteurs théoriques RTKi auxquels le destinataire théorique serait susceptible de transmettre le bloc numéroté BK.
Au cours d'une étape P520, le pair mettant en œuvre l'invention obtient, parmi les récepteurs théoriques RTKi, le pair destinataire PD dont l'identifiant appartient au niveau L. Ce pair destinataire PD est ensuite ajouté au cours d'une étape P390, à la liste ordonnée LDk de pairs destinataires.
L'étape d'ajout de ce pair comprend une sous-étape d'obtention de l'adresse du pair.
L'obtention de l'adresse du pair peut consister, par exemple, en l'émission d'une requête contenant l'identifiant du pair destinataire vers l'unité de gestion. L'unité de gestion reçoit cette requête au cours d'une étape G63 et envoie, au cours d'une étape G65, un message contenant l'adresse du pair identifié dans la requête. Le système d'aiguillage mettant en œuvre l'invention reçoit le message contenant l'adresse du pair destinataire. Alternativement, l'adresse du paire destinataire peut être envoyée par l'unité de gestion lors d'une étape G60 d'envoi à chacun des systèmes d'aiguillage en charge des pairs présents, de l'identifiant et de l'adresse de chacun des voisins de ces pairs présents, ou lors d'une étape G220 d'envoi à chacun des systèmes d'aiguillage en charge des pairs Pjm à identifier suite à la détection d'un événement, de l'identifiant et de l'adresse de chacun des voisins de ces pairs Pjm à identifier.
Cette adresse est reçue par le dispositif système mettant en œuvre l'invention lors d'une étape P25 et peut être mémorisée ensuite dans la mémoire non-volatile réinscriptible 114. L'adresse du pair destinataire peut être obtenue par lecture dans cette mémoire non- volatile réinscriptible.
Lorsqu'il est déterminé à l'étape P550 que l'identifiant IDTij de destinataire théorique appartient au niveau L+1, le pair identifié par l'identifiant IDTij est ajouté à la liste ordonnée LDk de pairs destinataires.
3.2.2 Dernier niveau incomplet comportant au maximum C(n-1, I) pairs
La proposition 6 ne s'applique pas lorsque le dernier niveau I est incomplet. La Règle 5 permet aux pairs de niveau I de rebondir sur les pairs absents de niveau 1-1 et de transmettre un bloc aux pairs de niveau I.
Mais lorsque le niveau I est incomplet, il peut se produire une transmission vers un pair absent, soit une transmission perdue. Comme, toutes les transmissions doivent être utiles dans chacun des intervalles de temps, certains blocs de données nécessaires n'atteindront pas des destinataires.
Dans le mode de réalisation décrit ici, on utilise une structure de diffusion qui utilise les relations des coefficients binomiaux.
Un niveau I est composé de toutes les combinaisons binaires de longueur n comprenant I « 0 ». Il y en a C(n, I).
Le niveau I doit recevoir n.C(n, I) blocs de données de ses voisins. Selon la proposition 4 :
n.C(n, I) = (l+l).C(n, 1+1) + (n-l+l).C(n, 1-1).
Cette relation permet d'identifier le saut suivant. Proposition 7 : Le nombre maximum de pairs dans un niveau I incomplet qui peuvent recevoir leurs blocs de données uniquement du niveau supérieur est :
x = (l+l).C(n, l+l)/n = C(n-1, I).
On considère C(n-1, I) pairs ou moins dans un niveau I incomplet. Ces pairs sont dits appartenir à un premier sous-niveau.
On peut démontrer comment tous les pairs de ce premier sous-niveau I peuvent recevoir tous les blocs de données du niveau 1+1. Il y a au plus C(n-1, I) pairs dans ce sous- niveau. Ils peuvent être représentés sur n-1 bits dn-i...di dans lesquels I sont égaux à « 0 ».
Pour trouver, l'émetteur du bloc de données k au pair A identifié dn-i...di on considère le pair fictif Bk de niveau I, dans un système de niveau I complet avec l'identifiant dn-i...dkldk-i...di obtenu en insérant un 1 en position k dans l'identifiant de A de longueur n- 1 (voir Table II).
Figure imgf000033_0001
Etant donné que Bk a un 1 en position k, il retransmet le bloc k. Il reçoit donc (lorsqu'il est présent) le bloc k d'un unique pair Ck du niveau supérieur 1+1. Puis Ck transmet ce bloc au pair A. Cela définit un ancêtre unique pour chaque bloc et chaque pair dans le premier sous-niveau.
Or, il n'est pas nécessaire que chaque pair du niveau 1+1 transmette plus de 1+1 blocs au premier sous-niveau. En effet, considérons un pair C de niveau 1+1 qui transmet le bloc k à l'instant i au niveau I. L'identifiant de C possède un 1 en position k et des « 0 » de la position k-1 à la position i dn-i...dk-nldk-i...di-nOdi_i ...di (avec d,=0 pour j de k-1 à i+1).
Donc à l'instant i, le pair C transmet le bloc k à l'unique pair du sous-niveau I d'identifiant de longueur n-1 dn...dk-ndk-i...di-nldi_i ...di.
On peut en déduire la règle de routage suivante ;
Règle 6 : Dans un groupe de pairs incomplet, un pair du dernier niveau 1+1 complet route un paquet comme décrit précédemment, si le pair A correspondant est présent au niveau inférieur I.
Pour tout pair dans le premier sous niveau d'un niveau I incomplet, n opportunités de transmission ont été utilisées par les pairs du niveau 1+1 qui auraient du être adressées aux autres pairs du niveau 1+1. Donc chaque pair présent dans le premier sous-niveau (ou éventuellement ses descendants) doit transmettre n blocs de données aux pairs qui ne les ont pas reçus. Pour identifier quels blocs de données à retourner à quels pairs, on procède de la façon suivante.
Soit dn-i...di l'identifiant de longueur n-1 d'un pair A au premier sous-niveau. A ce pair A on peut associer n pairs Bk en insérant un « 1 » entre dk+i et dk dans l'identifiant de A pour k allant de 1 à n.
Figure imgf000034_0001
Pour chaque pair Bk, A ou l'un de ses descendants doit transmettre le bloc de données k au pair Dk d'identifiant
Figure imgf000034_0002
Dk est le pair à qui Ck aurait envoyé le bloc k si A n'avait pas été présent. Cela définit une bijection entre les blocs qui n'ont pas été reçus au niveau 1+ 1 (du niveau 1+ 1) à cause de la présence de A au niveau I incomplet et les blocs retransmis par le pair A (ou l'un de ses descendants) au niveau 1+ 1.
Ceci se résume dans la règle de routage et dans la proposition suivante.
Règle 7 : Dans un groupe de pairs incomplet, un pair du dernier niveau I incomplet
(ou ses descendants) renvoie les blocs de données aux pairs de niveau 1+ 1 comme il vient d'être décrit.
Proposition 8 : Dans un groupe de pairs incomplet, avec un dernier niveau I incomplet, si les pairs sont routés suivant les règles 3, 5, 6, et 7, tous les pairs reçoivent leurs blocs de données.
Le premier sous-niveau peut être interprété comme le maximum de C(n-1, I) source virtuelles étant donné que les pairs de ce niveau ne s'appuient pas sur des pairs de niveau équivalent ou inférieur pour recevoir leurs blocs de données. Ces sources virtuelles peuvent avoir à diffuser leurs blocs aux éventuels autres pairs du niveau I incomplet. Si ces sources génèrent des sous-réseaux linéaires, le délai de ces sous-réseaux croit linéairement avec leurs tailles. Ces sources peuvent aussi générer de nouveaux réseaux partiels (hypercubes).
En tout état de cause, le niveau supérieur 1+ 1 requiert que lui soient retransmis C(n, 1+ 1) blocs depuis ce niveau incomplet.
Une organisation possible d'un niveau incomplet dans un réseau linéaire est présentée infra. Toutefois cette organisation peut mener à un nombre total de retransmissions d'un bloc (depuis son émission initiale) qui est sous-optimale. Il en résultera des délais et des retards, dans le cas de la diffusion d'un flux vidéo, qui peuvent être désagréables pour les utilisateurs. Nous présenterons plus loin comment le dernier niveau non vide peut être organisé pour que la diffusion des blocs dans le réseau soit optimale, c'est-à-dire obtenue en moins de [log2(N)] retransmissions depuis l'émission initiale, quel que soit le taux de remplissage de ce niveau. 3.2.3. Topoloqie linéaire de niveau I incomplet
On se place dans le cas où les pairs de niveau I restants sont organisés en réseaux linéaires prenant leurs origines dans des sources d'un premier sous-niveau.
Dans un réseau linéaire, chaque pair, mis à part la source, a un ancêtre unique.
Chaque pair reçoit tous ses blocs de données de son ancêtre.
On peut définir des sous-niveaux successifs dépendant de la distance, en nombre de sauts, en partant du premier sous-niveau.
Le dernier descendant dans un réseau linéaire a la responsabilité de transmettre les blocs de données qu'il a reçu aux voisins d'une source virtuelle de niveau 1+1, comme défini dans la Règle 7.
Dans un mode particulier de réalisation un pair appartenant à un réseau linéaire se voit attribué un identifiant comportant deux composantes. Une première composante identique à l'identifiant sur n-1 bits à l'origine du réseau linaire auquel il appartient. Et une deuxième composante numérique incrémentée de la valeur « un » à chaque rajout d'un pair dans le réseau linéaire. Pour chaque bloc de donnée numéroté k, les pairs appartenant à un réseau linéaire et le pair du niveau 1+1 auquel le dernier pair du réseau linéaire doit retransmettre le bloc k forment une liste ordonnée LOE, telle que décrite dans la figure 11, générée à partir d'un numéro de bloc k et d'un identifiant générateur obtenu en plaçant le bit « 1 » en position « k » dans l'identifiant à l'origine du réseau linéaire. Ce mode de réalisation des listes de diffusion LOE dans un dernier niveau non vide du réseau présente un caractère de simplicité extrême en terme de gestion du réseau lors des arrivées et des départs de pairs. Par contre, comme nous allons le montrer, il aboutit à des délais sous-optimaux. Nous montrons dans la suite une méthode alternative de réalisation des listes LOE, plus complexe à gérer, mais optimale en termes de nombre de retransmissions avant réception finales d'un bloc.
Il peut être nécessaire d'ajouter plusieurs sous-niveaux avant d'obtenir C(n, I) pairs présents pour former un niveau I complet.
La profondeur maximum de ces réseaux linéaires avant que ce nombre soit atteint est bornée comme mentionné dans la proposition suivante.
Proposition 9 : Un niveau incomplet I peut être décomposé dans un nombre n/n-l maximum de réseaux, chacun de taille C(n-1, 1), à l'exception du dernier sous-niveau.
En effet, le niveau I étant incomplet, il est composé de moins de C(n, I) pairs. Ceux-ci peuvent être distribués sur C(n-1, I) possibles réseaux linéaires. Chacun a donc une longueur maximum
C(n, l) / C(n-l, I) = n / (n-l)
Ce rapport décroit de n à 1 lorsque I varie de n-l à 0.
Pour I dans [0 ; n-l], ce rapport est inférieur ou égal à 1+1, car : (n/n-l) <= 1+1 < = > l2 - (n-l).l <=0
Une limite plus fine est obtenue si l'hypercube est au moins à moitié plein : n/(n-l)
<=2.
Dans tous les cas, pour des réseaux linéaires de longueur maximum k et pour un hypercube incomplet de profondeur I, le délai maximum en terme de durée de transmission est égal à
n + k - 1 (3)
alors que le délai maximum en termes de délai de propagation total est
(n - I + k + 1).D (4)
Pour obtenir ces limites, il suffit de calculer le délai d'un bloc ayant descendu le sous- réseau linéaire le plus long et remonté à un pair dans le dernier niveau complet. Cela peut se produire qu'un bloc de données soit envoyé au niveau 1+1 depuis le niveau supérieur au plus n- 2 fois. Il est finalement renvoyé au niveau 1+1.
On obtient le nombre limite de transmissions total n + k - 1.
Notons que l'on ré-obtient un délai n si k=l et seulement un délai n+1 si k=2.
De la même façon, les blocs de données reçus au niveau 1+1 depuis le niveau supérieur ont subi un délai total de propagation de
(n-l).D
Les blocs de données peuvent ensuite subir un délai maximum de kD à travers le sous-réseau linéaire et un délai D pour retourner à leur pair de destination au niveau 1+1, soit un délai maximum total :
(n-l+k+l).D
3.2.4 Règles 21 et 22
De retour à l'étape P30, dans le premier mode de réalisation,
une règle R21 est choisie si le niveau L-l est non vide, ce qui signifie que le pair considéré ne se situe pas sur le dernier niveau où les identifiants ont été attribués ; une règle R22 est choisie si le niveau L-l est vide, le niveau L n'étant pas complet. Chacune de ces règles R21, R22 utilise des routines pour obtenir un identifiant de base et une liste ordonnée étendue LOE dont l'obtention va maintenant être décrite en référence aux figures 11, lia, 11b et 11c.
3.2.4.1 Identifiant de base
D'une façon générale, un identifiant de base IDBqk est associé à un identifiant de pair quelconque IDq et à numéro Kq d'un bloc de données numéroté quelconque.
Dans un mode de réalisation, cet identifiant de base est obtenu par une étape P700 de détermination d'une séquence de fin SEQq de l'identifiant de pair quelconque IDq , suivie d'une étape P710 d'obtention dudit identifiant de base IDBqk à partir dudit identifiant de pair quelconque IDq par déplacement de la séquence de fin SEQq dans l'identifiant de pair quelconque IDq à une position Kq correspondant audit numéro de bloc quelconque, les autres éléments binaires de l'identifiant de pair quelconque IDq étant décalés.
Alternativement, l'identifiant de base est obtenu par une étape P701 de détermination d'une séquence de fin SEQq de l'identifiant de pair quelconque IDq , suivie d'une étape P711 de permutation circulaire des éléments binaires dudit identifiant de pair quelconque IDq de manière à placer ladite séquence de fin SEQq à une position Kq correspondant audit numéro de bloc quelconque.
D'une façon générale, quel que soit le mode de réalisation de l'invention, les règles R21 et R22 doivent utiliser la même méthode d'obtention de l'identifiant de base.
3.2.4.2 Liste ordonnée étendue LOE
D'une façon générale, la liste LOE est obtenue à partir d'un identifiant générateur IDGj et d'un bloc BK de données numéroté K.
Au cours d'une étape P600, on détermine un niveau d'ordre G, dit niveau générateur, auquel appartient cet identifiant générateur IDGj.
Puis, au cours de la même étape P600, on détermine une liste ordonnée LOljk comportant une partie seulement des identifiants appartenant au niveau générateur G à partir de l'identifiant générateur IDGj et du numéro K dudit bloc numéroté BK.
Au cours d'une étape P610, on détermine une liste LDTjk des destinataires théoriques du bloc BK, auxquels le pair identifié par l'identifiant générateur IDGj serait susceptible de transmettre ledit bloc numéroté BK selon ladite règle générale R.
Puis, au cours d'une étape P620, on obtient, dans ladite liste LDTjk des destinataires théoriques, le pair dont l'identifiant IDE appartient au niveau G+l, dit identifiant d'extension.
La liste ordonnée étendue LOE est obtenue, au cours d'une étape P630, en ajoutant l'identifiant IDE d'extension en dernière position dans la première liste ordonnée LOljk.
3.2.4.3 Obtention de l'identifiant de base et de la liste ordonnée étendue LOE dans un premier exemple
On considère le dernier niveau L du réseau. Il peut être incomplet ou complet. Ce niveau contient au maximum C(n,L) pairs. Ces pairs peuvent être classifiés en 1+1 sous-niveaux
C(n,L) = C(n-1,L) + C(n-2, L-l) + ... + C(n-L-1, 0).
Dans ce mode de réalisation, le premier sous-niveau comprend les pairs avec un bit à « 1 » à droite, suivi de n-1 bits à gauche, dont L bits à « 0 ».
Le deuxième sous-niveau comprend les pairs avec les deux bits les plus à droite à «10» à droite, suivi de n-2 bits à gauche, dont (L -1) bits à « 0 », et ainsi de suite jusqu'au dernier sous-niveau composé du seul pair avec L bits à « 0 » à droite suivis d'un bit à « 1 », suivi de (n - L - 1) bits sans « 0 » à gauche.
On appelle « séquence de fin » (« trailer » en anglais) les bits à droite qui caractérisent un sous-ensemble.
Pour déterminer comment un pair 'A' appartenant à un sous-niveau du niveau L reçoit les blocs de données, on doit chercher ses ascendants dans le niveau L+ l.
On considère les bits qui composent une « séquence de fin », une telle séquence étant composée d'un nombre de « 0 » (ce nombre pouvant être nul) suivi d'un bit à « 1 » à gauche.
Cette 'séquence de fin' est décalée dans l'identifiant du pair 'Α'.
Il existe n possibilités de décalage de la 'séquence de fin', et pour chaque possibilité le bit à « 1 » de la séquence prend une position différente dans l'identifiant de niveau n résultant.
L'identifiant résultant du décalage plaçant le bit à « 1 » de la séquence de fin en une position k est Γ « identifiant de base » de l'identifiant de A pour le bloc k.
Nous allons définir un premier procédé d'association RAI qui, à un identifiant de pair
IDq et à un numéro Kq de bloc BKq de données numéroté, associe un identifiant de base obtenu par déplacement de la séquence de fin SEQq dans l'identifiant de pair IDq à une position Kq correspondant au numéro Kq de bloc BKq, les autres éléments binaires dudit identifiant de pair IDq étant décalés.
L'ascendant (en général indirect) du pair 'A' dans le niveau L+ l pour le bloc de données k est le même que celui de son « identifiant de base » pour le bloc k, c'est-à-dire l'ascendant, pour ce bloc de données k, du pair identifié par l'identifiant obtenu par le décalage de la 'séquence de fin' dans l'identifiant de A tel que le bit « 1 » est en position k.
On considère par exemple un niveau 2 incomplet dans un hypercube de dimension 5, et l'identifiant ' 10110'.
Cet identifiant correspond à l'identifiant du pair 'A' du sous-niveau avec la 'séquence de fin '10'. L'ascendant, Ak, de A pour le bloc de données Bk de numéro 4 est le même que l'ascendant du pair Ί 100 pour ce bloc, où on reconnaît que Ί 100 est l'identifiant de base de A pour le bloc 4. Cet ascendant Ak a pour identifiant '11000' d'après la règle générale. Il est à noter que d'autres identifiants de niveau 2 peuvent avoir le même ascendant Ak pour le bloc de donnée Bk de numéro 4 avec ce même procédé. Par exemple l'identifiant '10011' lorsqu'on place le T de sa 'séquence de fin Ί" en position 4 donne l'identifiant Ί 100 , a le même ascendant Ak pour le le bloc de numéro 4.
L'ensemble des pairs ayant un même identifiant de base, j, pour un bloc de numéro k peuvent être regroupés dans une liste LOljk. Ainsi à tout destinataire j d'un bloc Bk provenant d'un niveau supérieur d'après la règle générale, on peut associer une liste LOljk d'identifiants dans le même niveau que le destinataire. Cette association est biunivoque. Par ailleurs, tout pair A, pour tout bloc k, appartient à une et une seule liste LOljk qui peut être obtenue à partir de l'identifiant de base de A pour le bloc k. Cette liste peut être ordonnée, ce qui définit un processus de diffusion du bloc Bk parmi les pairs de la liste. Cet ordre est arbitraire, mais on peut établir une règle pour ordonner de façon systématique les identifiants dans la liste. Une règle possible est d'ordonner les identifiants suivant la longueur décroissante de la taille de leur 'séquence de fin'. Ceci est illustré dans les séquences présentées à titre d'exemple dans la Table IV.
Tout destinataire j d'un bloc Bk provenant d'un niveau supérieur doit retransmettre ce bloc vers un destinataire j l unique dans le niveau supérieur d'après la règle générale. Ainsi à tout destinataire j d'un bloc Bk provenant d'un niveau supérieur, on peut associer une liste étendue ordonnée LOE d'identifiants égale à la liste LOljk à laquelle on a rajouté en fin de liste l'identifiant j l.
Ainsi les listes LOE, obtenues à partir d'identifiants de base d'un niveau L et de numéros de bloc k, définissent une règle possible, R22, de retransmission d'un bloc k par les pairs du niveau L.
La table III représente les ascendants et descendants pour chaque bloc de données échangé par le pair 1 10110' dont la séquence de fin est « 10 ».
Figure imgf000039_0001
Table III
La table IV représente comment le pair 'ΙΟΟΟ appartenant au niveau 3 de référence choisit ses descendants appelés 'pairs destinataires' PD pour chaque bloc de données dans le dernier niveau non vide, soit L = 2 dans cet exemple.
Dans cet exemple on crée autant de listes ordonnées LOE que de destinataires du pair 'ΙΟΟΟ dans le niveau suivant d'après la règle générale. Pour chaque un intervalle de temps donné représenté par un Ό' dans son identifiant, le pair 'ΙΟΟΟ possède un destinataire j dans le niveau inférieur, auquel on associe une liste LOE comme suit : Intervalle de temps 2 3 4
Bloc de données 5 5 5
Destinataire théorique 10011 10101 11001
1er choix 11100 10110 10011
2ème choix 01110 01011 01001
3ème choix 00111 00101 -
4ème choix 00011 - -
Table IV
Dans cet exemple, le pair 'ΙΟΟΟ envoie le bloc k, initialement destiné à un pair j dans le niveau suivant d'après la règle générale, au premier pair présent dans la liste ordonnée LOE. Il existe au moins un tel pair présent car le dernier identifiant dans la liste LOE appartient au même niveau que 'ΙΟΟΟ qui est nécessairement complet car suivi d'un niveau non vide.
Un pair Pi dans le dernier niveau, recevant un bloc numéroté k, recherchera à quelle liste LOE il appartient. Il transmettra le bloc au prochain pair présent dans la liste.
Ainsi l'ensemble des listes LOE définissent un processus de diffusion des blocs dans le dernier niveau non vide, tel que tout pair présent dans ce niveau reçoit tous les blocs quelques soient les pairs présents ou non dans le niveau. De plus ces listes assurent que les pairs du niveau précédent le dernier niveau recevront du niveau inférieur les blocs qu'ils n'ont pas reçu du niveau supérieur et qu'il leur manque pour compléter leurs séquences de blocs.
L'ensemble des listes LOE permettent aussi aux pairs du niveau supérieur, L+l, de déterminer vers quels pairs ils doivent transmettre un bloc numéroté k lorsque cette transmission doit se faire vers le niveau L suivant la règle général. Un tel pair A' du niveau L+l, devant transmettre le bloc k à un pair A" du niveau L, détermine la liste LOE tel que le ferait un pair du niveau L si A" était son identifiant de base pour le bloc k. Le pair A' transmet alors le bloc k au premier pair présent dans la liste LOE. Ceci montre comment obtenir la liste LOE pour la règle 21 ci-dessous.
La règle de constitution des listes LOE et la diffusion des blocs à l'intérieur de ces listes assurent qu'au pire des cas les blocs diffusés suivant ces listes seront reçus après un nombre total de transmissions inférieur à riog2(N)1 depuis leur émission par la source, où riog2(N)1 est le premier entier supérieur ou égal au logarithme en base « 2 » de N. Cette borne étant respectée si la dimension « n » du réseau est choisie telle que 2n l<N<2n. C'est aussi le cas des blocs reçus après une transmission suivant la règle générale. Etant donné que ces deux règles permettent de diffuser tous les blocs à tous les pairs, ceci démontre que ce procédé de diffusion permet à tous les pairs de recevoir tous leurs blocs en moins de riog2(N)1 transmissions depuis leur émission par la source. Il est de plus possible de diminuer la moyenne du nombre total de transmissions des blocs par les pairs depuis leur émission par la source. Ceci peut être obtenu en attribuant d'abord les identifiants avec les 'séquences de fin' les plus longues dans le dernier niveau non vide.
3.2.4.4 Obtention de l'identifiant de base et de la liste ordonnée étendue LOE dans un deuxième exemple
On considère un pair 'Α'. L'identifiant de ce pair possède une séquence de fin définie comme dans l'exemple précédant.
Nous allons définir un nouveau procédé RA2 pour associer un « identifiant de base » au pair 'A' pour tout bloc k. Suivant ce nouveao procédé Γ « identifiant de base » de 'A' pour un bloc k est obtenu en décalant circulairement la totalité de l'identifiant de 'A' (sur la longueur de l'identifiant) tel que le bit « 1 » de sa séquence de fin se retrouve en position k. Une rotation circulaire d'un identifiant « anan-i...ai » de longueur n produit par exemple l'identifiant « an- i...aian ». Toute les rotations circulaires peuvent s'obtenir en réitérant la rotation circulaire précédente.
Comme précédemment il existe n possibilités de rotation, et pour chaque possibilité le bit à « 1 » de la séquence de fin prend une position différente dans l'identifiant de niveau n résultant. L'identifiant résultant de la rotation plaçant le bit à « 1 » de la séquence de fin en une position k est Γ « identifiant de base » de l'identifiant de A pour le bloc k dans ce deuxième exemple.
L'ascendant (en général indirect) du pair 'A' dans le niveau L+ l pour le bloc de données k est celui qu'aurait son « identifiant de base » pour le bloc k dans la règle générale de l'hypercube.
On considère par exemple un niveau 2 incomplet dans un hypercube de dimension 5, et l'identifiant ' 10110'.
Cet identifiant correspond à l'identifiant d'un pair 'A' du sous-niveau avec la 'séquence de fin '10'. L'ascendant, Ak, de A pour le bloc de données Bk de numéro 4 est le même que l'ascendant du pair '11010' pour ce bloc, où on reconnaît que '11010' est l'identifiant de base de A pour le bloc 4 obtenu par rotation circulaire de 2 positions vers la gauche de l'identifiant ' 10110'. Cet ascendant Ak a pour identifiant '11000' d'après la règle générale. Il est à noter que d'autres identifiants de niveau 2 peuvent avoir le même ascendant Ak pour le bloc de donnée Bk de numéro 4 avec ce même procédé. Par exemple l'identifiant '01011' lorsqu'on place le T de sa 'séquence de fin Ί" en position 4 donne l'identifiant '11001', a le même ascendant Ak pour le le bloc de numéro 4.
L'ensemble des pairs ayant un même identifiant de base, j, pour un bloc de numéro k peuvent être regroupés dans une liste LOl'jk. Une différence importante de cette liste par rapport à celle définie dans l'exemple précédent est que la liste LOl'jk est la même pour tous les blocs k. Ainsi un pair dans un niveau incomplet appartient à une seule liste de diffusion, ce qui limite le nombre de pairs à notifier lors de son arrivée ou lors de son départ. Cette liste peut être ordonnée soit en fonction d'un ordre arbitraire soit suivant une règle. Une règle possible peut être de placer en tête de liste les pairs avec la plus grande séquence de fin. Ceci est illustré dans les séquences présentées à titre d'exemple dans le Tableau VI suivant.
Tout destinataire j d'un bloc Bk provenant d'un niveau supérieur doit retransmettre ce bloc vers un destinataire jl unique dans le niveau supérieur d'après la règle générale. C'est en particulier le cas pour l'identifiant de base auquel est associé la liste LO'ljk, identifiant qui possède un unique destinataire jl pour le bloc Bk dans le niveau L+1. Ainsi à toute liste LO'ljk on peut associer une liste étendue ordonnée LOE d'identifiants égale à la liste LO'ljk dans laquelle on a inséré l'identifiant jl.
Ainsi les listes LOE, obtenues à partir d'identifiants de base d'un niveau L et de numéros de bloc k, définissent une règle possible, R22, de diffusion d'un bloc k parmi les pairs du niveau L et les pairs du niveau L+1 sensés recevoir le bloc k du niveau L d'après la règle générale.
La table V représente les ascendants et descendants pour chaque bloc de données échangé par le pair 1 10110' dont la séquence de fin est « 10 ». Dans ce tableau on a choisi, à titre d'exemple, d'ordonner les listes LOE suivant la longueur décroissante des séquences de fin en plaçant en fin de liste l'unique identifiant de niveau L+1.
Figure imgf000042_0001
Table V
On remarque que le pair 1 10110' possède le même descendant 'ΟΙΟΙ quelque soit le bloc k, descendant dont l'identifiant est obtenu par rotation circulaire de 1 10110'.
La table VI représente comment le pair 'ΙΟΟΟ appartenant au niveau 3 de référence choisit ses descendants appelés 'pairs destinataires' PD pour chaque bloc de données dans le dernier niveau non vide, soit L = 2 dans cet exemple.
Dans cet exemple on crée autant de listes ordonnées LOE que de destinataires du pair 'ΙΟΟΟ dans le niveau suivant d'après la règle générale. Pour chaque intervalle de temps donné représenté par un 'Ο' dans son identifiant, le pair ' ΙΟΟΟΓ possède un destinataire j dans le niveau inférieur, auquel on associe une liste LOE comme suit :
Figure imgf000043_0001
Table VI
Dans cet exemple, le pair 'ΙΟΟΟ envoie le bloc k, initialement destiné à un pair j dans le niveau suivant d'après la règle générale, au premier pair présent dans la liste ordonnée LOE. Il existe au moins un tel pair présent car le dernier identifiant dans la liste LOE appartient au même niveau que 'ΙΟΟΟ qui est nécessairement complet car suivi d'un niveau non vide.
Un pair Pi dans le dernier niveau, recevant un bloc numéroté k, recherchera à quelle liste LOE il appartient. Il transmettra le bloc au prochain pair présent dans la liste.
Ainsi l'ensemble des listes LOE définissent un processus de diffusion des blocs dans le dernier niveau non vide, tel que tout pair présent dans ce niveau reçoit tous les blocs quelques soient les pairs présents ou non dans le niveau. De plus ces listes assurent que les pairs du niveau précédent le dernier niveau recevront du niveau inférieur les blocs qu'ils n'ont pas reçu du niveau supérieur et qu'il leur manque pour compléter leurs séquences de blocs.
La règle de constitution des listes LOE et la diffusion des blocs à l'intérieur de ces listes assurent qu'au pire des cas les blocs diffusés suivant ces listes seront reçus après un nombre total de transmissions inférieur à riog2(N)1 depuis leur émission par la source, où riog2(N)1 est le premier entier supérieur ou égal au logarithme en base « 2 » de N. Cette borne étant respectée si la dimension « n » du réseau est choisie telle que 2n l<N<2n. C'est aussi le cas des blocs reçus après une transmission suivant la règle générale. Etant donné que ces deux règles permettent de diffuser tous les blocs à tous les pairs, ceci démontre que ce procédé de diffusion permet à tous les pairs de recevoir tous leurs blocs en moins de riog2(N)1 transmissions depuis leur émission par la source.
II est de plus possible de diminuer la moyenne du nombre total de transmissions des blocs par les pairs depuis leur émission par la source. Ceci peut être obtenu en attribuant d'abord les identifiants avec les 'séquences de fin' les plus longues dans le dernier niveau non vide. 3.2.5 Règle R21
Dans le premier mode de réalisation décrit ici, la règle R21 comprend une étape P310 de détermination, conformément à la règle R générale, à partir du numéro K du bloc BK et de l'identifiant IDi, du pair considéré d'une liste ordonnée L03 comportant les identifiants IDTij des pairs destinataires théoriques du bloc BK.
Puis, pour chacun des identifiants IDTij des destinataires théoriques pris dans l'ordre de cette liste ordonnée L03, on teste, au cours d'une étape P320, si cet identifiant IDTij appartient au niveau L-l.
Si c'est le cas, la règle R21 comporte une étape P360 de détermination de la liste ordonnée étendue LOE, comme décrit précédemment en référence à la figure 11, à partir de l'identifiant IDTij de destinataire théorique et du numéro K du bloc numéroté BK.
Au cours d'une étape P370, la règle R21 permet d'obtenir un pair destinataire PD identifié par le premier identifiant attribué A3 dans la liste ordonnée étendue LOE.
Ce pair destinataire PD est ensuite ajouté au cours d'une étape P390, à la liste ordonnée LDk de pairs destinataires.
Lorsqu'il est déterminé à l'étape P320 que l'identifiant IDTij de destinataire théorique appartient au niveau L+l, le pair identifié par l'identifiant IDTij est ajouté à la liste ordonnée LDk de pairs destinataires.
L'étape d'ajout de ce pair comprend une sous-étape d'obtention de l'adresse du pair. L'obtention de l'adresse du pair peut consister, par exemple, en l'émission d'une requête contenant l'identifiant du pair destinataire vers l'unité de gestion. L'unité de gestion reçoit cette requête au cours d'une étape G63 et envoie, au cours d'une étape G65, un message contenant l'adresse du pair identifié dans la requête. Le système d'aiguillage mettant en œuvre l'invention reçoit le message contenant l'adresse du pair destinataire. Alternativement, l'adresse du paire destinataire peut être envoyée par l'unité de gestion lors d'une étape G60 d'envoi à chacun des systèmes d'aiguillage en charge des pairs présents, de l'identifiant et de l'adresse de chacun des voisins de ces pairs présents, ou lors d'une étape G220 d'envoi à chacun des systèmes d'aiguillage en charge des pairs Pjm à identifier suite à la détection d'un événement, de l'identifiant et de l'adresse de chacun des voisins de ces pairs Pjm à identifier.
Cette adresse est reçue par le système d'aiguillage mettant en œuvre l'invention lors d'une étape P25 et peut être mémorisée ensuite dans la mémoire non-volatile réinscriptible 114. L'adresse du pair destinataire peut être obtenue par lecture dans cette mémoire non- volatile réinscriptible. 3.2.6 Règle R22
La règle R22 de diffusion d'un bloc BK de données numéroté s'applique si une deuxième condition est satisfaite. Dans le premier mode de réalisation décrit ici, cette deuxième condition est que le niveau de référence L auquel appartient le pair mettant en œuvre l'invention est incomplet.
Lorsque cette deuxième condition est satisfaite, la règle R22 comporte une étape P400 de détermination d'un identifiant IDBik dit identifiant source, à partir de l'identifiant IDi du pair mettant en œuvre l'invention et du numéro K du bloc BK.
La règle R22 détermine ensuite, au cours d'une étape P410, la liste ordonnée étendue LOE, comme déjà décrit en référence à la figure 11 ; à partir de l'identifiant de source IDBik et du numéro K du bloc numéroté BK.
Au cours d'une étape P420, la règle R22 recherche l'identifiant IDi du pair mettant en œuvre l'invention dans la liste ordonnée étendue LOE.
Puis, au cours d'une étape P420, la règle R22 permet de déterminer un pair destinataire PD identifié par le premier identifiant attribué A4 suivant l'identifiant IDi dans la liste ordonnée étendue LOE. Ce pair destinataire PD est ensuite ajouté au cours d'une étape P390, à la liste ordonnée LDk de pairs destinataires.
Description d'un deuxième mode de réalisation de l'invention
4.1 Fonctionnement de l'unité de gestion
Dans ce deuxième mode de réalisation de l'invention, l'unité de gestion communique aux systèmes d'aiguillage en charge des pairs présents à l'étape G50, en plus des informations permettant aux systèmes d'aiguillage de déterminer si le niveau de référence L auquel appartient l'identifiant d'un pair considéré est complet et si le niveau L-l est complet ou vide, des informations permettant à ce système d'aiguillage de déterminer si le niveau L-2 est vide.
Lorsqu'un événement est détecté, l'unité de gestion envoie aux étapes G220 et G230, aux systèmes d'aiguillage en charge des pairs à notifier et des pairs à identifier, en plus des informations décrites en référence au premier mode de réalisation, des d'informations permettant à ce pair de déterminer si le niveau L-2 est vide.
Lorsque l'événement est constitué par l'arrivée d'un nouveau pair NPPi dans le réseau, les pairs Pqr à notifier de cet événement à l'étape G220, sont, en plus de ceux décrits en référence au premier mode de réalisation, les pairs du niveau Lk+2, si l'identifiant dudit nouveau pair NPPi est le premier identifiant attribué dans son niveau.
Lorsque l'événement est constitué par le départ d'un pair sortant du réseau, les pairs Pqr à notifier à l'étape G230 comprennent, en plus de ceux décrits en référence au premier mode de réalisation, les pairs du niveau Lk+2 si l'identifiant du pair sortant PSj ou du pair remplaçant PR était le seul de son niveau.
4.2 Fonctionnement du système d'aiguillage Le fonctionnement du système d'aiguillage dans ce deuxième mode de réalisation est décrit en référence aux figures 9 et 10.
Ces figures sont similaires aux figures 7 et 8 pour les étapes
P100, P300, PI 10, P310, P120, P320, P130, P330, P160, P360, P170, P370, correspondant à la règle R21 et pour les étapes P200, P400, P210, P410, P220, P420, correspondant à la règle R22.
Dans ce mode de réalisation, le système d'aiguillage doit recevoir, de l'unité de gestion, les informations lui permettant de déterminer si le niveau L est complet, si le niveau L- 1 est complet ou vide, et si le niveau L-2 est vide.
Dans ce mode de réalisation, le système d'aiguillage utilise la règle générale R des hypercubes complets si le niveau L-2 n'est pas vide.
Dans ce mode de réalisation, le système d'aiguillage mettant en œuvre l'invention n'utilise jamais la règle RI .
Il utilise la règle R21 si L- l n'est pas vide (étape P100).
II utilise la règle R22 si le niveau L- l est vide.
Dans ce mode de réalisation l'étape P190 d'ajout du pair destinataire PD à la liste ordonnée LDk de pairs destinataires est similaire à l'étape P 390.
4.3 Implémentation matérielle
Dans le deuxième mode de réalisation, l'architecture matérielle de l'unité de gestion et du système d'aiguillage est identique à celle décrite en référence aux figures 12 et 13.
Seuls les programmes d'ordinateur PGM l et PGM2 sont modifiés en ce qui concerne les étapes Pl i, P21, P26, P31, P41, P51, P61. 4.4 Fonctionnement général d'un pair du réseau
On décrit maintenant le comportement d'un pair du réseau, en référence aux figures 3 et 3a .
Dans le mode de réalisation décrit ici, ce pair Pi a l'architecture matérielle d'un ordinateur. Il comporte un processeur 21, une mémoire morte 22, une mémoire vive 23, une mémoire non volatile réinscriptible 24, des moyens de communication 25 avec les systèmes d'aiguillage et des moyens de communication 26 avec les autres pairs du réseau .
Lorsque le système d'aiguillage est incorporé dans le pair Pi, les moyens de communication 25 sont internes à ce pair et peuvent être constitués par un bus de données.
Lorsque le système d'aiguillage est externe au pair Pi, les moyens de communication 25 et 26 peuvent être identiques.
La mémoire morte 22 constitue un support conforme à l'invention, lisible par le processeur 21 et sur lequel est enregistré un programme d'ordinateur PGM3 comprenant des instructions pour l'exécution des étapes d'un procédé de diffusion selon l'invention dont les principales étapes seront décrites en référence à la figure 3.
Ce pair comporte des moyens 26 de réception de données numériques diffusées sous forme de blocs numérotés BK. Il reçoit un bloc de données au cours d'une étape T10, il obtient ensuite au cours d'une étape T20 la liste ordonnée LDk pouvant contenir au moins un pair destinataire de ce bloc de données BK numéroté, cette liste étant créée par un système d'aiguillage DA mettant en œuvre l'invention.
Dans un mode particulier de réalisation de l'invention le système d'aiguillage peut être intégré audit pair, dans ce cas l'étape T20 d'obtention utilise une communication interne, via un bus de données.
Alternativement, si le système d'aiguillage DA est intégré à l'unité de gestion, l'étape T20 d'obtention utilise une communication externe, via le réseau.
Le pair utilise les moyens de communications 26 avec les autres pairs du réseau pour transmettre ensuite au cours d'une étape T30 le bloc de données BK numéroté à chaque pair appartenant à la liste ordonnée LDk des pairs destinataires.

Claims

REVENDICATIONS
1. Procédé de communication de données (BK) mis en œuvre par un système d'aiguillage (DA) dans un réseau pair à pair, ce procédé comportant :
- une étape (P50, P51, P60, P61) de détermination conformément à une règle (R, R21, R22, RI) de diffusion des données dans ledit réseau, d'un ensemble d'au plus n pairs destinataires (PD) auxquels un pair (Pi) doit transmettre (T30) un bloc de données (BK) numéroté (K) reçu (T10) par ce pair (Pi), en fonction d'un identifiant (IDi) comprenant des éléments binaires et destiné à identifier ledit pair (Pi), et de la dimension n dudit réseau,
- ladite règle étant sélectionnée (P40, P41) à partir d'informations permettant de déterminer le caractère complet, vide ou incomplet d'un niveau dit de référence L auquel appartient ledit identifiant (IDi), et d'au moins un niveau suivant ledit niveau de référence dans un ordre prédéfini d'attribution des niveaux , un dit niveau (Lj) étant constitué par l'ensemble des identifiants de pair comprenant un nombre j d'un élément binaire prédéterminé (bO);
- ladite règle (R, R21, R22, RI) étant:
- la règle (R) des hypercubes complets de dimension n, dite « règle générale » si une condition sur lesdites informations est satisfaite ;
- une autre règle (R21, R22, RI) déterminée en tenant compte desdites informations dans tous les autres cas.
2. Procédé de communication de données (BK) selon la revendication 1 dans lequel ledit procédé comporte une étape (MSEL) de sélection de règle comprenant:
- une étape (P30, P31) d'obtention desdites informations ; et
- une étape (P40, P41) de sélection de ladite règle (R, R21, R22, RI) à partir desdites informations.
3. Procédé de communication de données (BK) selon la revendication 1 ou 2 dans lequel lesdites informations permettent de déterminer si :
- le niveau de référence L est complet ; et si
- le niveau L-l, suivant le niveau de référence L dans l'ordre d'attribution des niveaux, est complet ou vide ; et si
- le niveau L-2, suivant le niveau L-l dans l'ordre d'attribution des niveaux, est vide ;
- ladite condition étant satisfaite si ledit niveau L-2 n'est pas vide.
4. Procédé de communication de données (BK) selon la revendication 1 ou 2 dans lequel lesdites informations permettent de déterminer si : - le niveau de référence L est complet ; et si
- le niveau L-l, suivant le niveau L dans l'ordre d'attribution des niveaux, est complet ou vide ;
- ladite condition étant satisfaite si le niveau L-l est complet.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, lorsque ladite condition n'est pas satisfaite, ladite autre règle (R21, R22) utilise une liste ordonnée étendue (LOE) obtenue (P6) à partir d'un identifiant générateur (IDGj) et d'un bloc (BK) de données numéroté (K), par :
- une étape (P600) de détermination d'un niveau d'ordre G, dit niveau générateur, auquel appartient ledit identifiant générateur (IDGj) ;
- une étape (P600) de détermination d'une première liste ordonnée (LOljk) comportant une partie seulement des identifiants appartenant audit niveau générateur (G) à partir dudit identifiant générateur (IDGj) et du numéro (K) dudit bloc numéroté (BK) ;
- une étape (P610) de détermination d'une liste (LDTjk) des destinataires théoriques dudit bloc (BK), auxquels le pair identifié par ledit identifiant générateur (IDGj) serait susceptible de transmettre ledit bloc numéroté (BK) selon ladite règle générale (R) ;
- une étape (P620) d'obtention, dans ladite liste (LDTjk) des destinataires théoriques, du pair dont l'identifiant (IDE) appartient au niveau G+l, précédant le niveau générateur G dans l'ordre d'attribution des niveaux, dit identifiant d'extension ;
- ladite liste ordonnée étendue (LOE) étant obtenue en ajoutant (P630) l'identifiant (IDE) d'extension en dernière position dans la première liste ordonnée (LOljk).
6. Procédé selon la revendication 5, caractérisé en ce que ladite autre règle (R21, R22) utilise un procédé d'association (RA1,RA2) qui, à un identifiant de pair (IDq) et à un numéro
(Kq) d'un bloc (BKq) de données numéroté, associe un identifiant de base (IDBqk).
7. Procédé selon la revendication 6 caractérisé en ce que ledit procédé d'association (RAI) comprend :
- une étape (P700) de détermination d'une séquence de fin (SEQq) dudit identifiant de pair (IDq) ;
- une étape (P710) d'obtention dudit identifiant de base (IDBqk) à partir dudit identifiant de pair (IDq) par déplacement de ladite séquence de fin (SEQq) dans ledit identifiant de pair (IDq) à une position (Kq) correspondant audit numéro de bloc (BKq), les autres éléments binaires dudit identifiant de pair (IDq) étant décalés.
8. Procédé selon la revendication 6 caractérisé en ce que ledit procédé d'association (RA2) comprend :
- une étape (P701) de détermination de la séquence de fin (SEQq) dudit identifiant de pair (IDq) ;
- une étape (P711) d'obtention dudit identifiant de base (IDBqk) à partir dudit identifiant de pair (IDq) par permutation circulaire des éléments binaires dudit identifiant de pair (IDq) de manière à placer ladite séquence de fin (SEQq) à une position (Kq) correspondant audit numéro de bloc (BKq).
9. Procédé selon la revendication 7 ou 8 caractérisé en ce que ladite étape (P600) de détermination d'une première liste ordonnée (LOljk) comprend
- une sous-étape (P604) de détermination, pour au moins un identifiant (IDg) dudit niveau générateur, d'un identifiant de base (IDBgk) associé selon ledit procédé d'association (RAI, RA2) à cet identifiant dudit niveau générateur (IDg) et au numéro (K) dudit bloc numéroté (BK) ;
- ladite première liste ordonnée (LOljk) étant constituée (P606, P608) par les identifiants (IDg), appartenant audit niveau générateur (G), dont les identifiants de base associés (IDBgk) sont égaux audit identifiant générateur (IDGj) .
10. Procédé selon la revendication 6 ou 9, caractérisé en ce qu'il comprend en outre une étape de création d'une liste ordonnée (LDk) apte à contenir au moins un pair destinataire (PD) auquel ledit pair (Pi) doit transmettre (T30) un bloc de données (BK) reçu (T10) par ledit pair (Pi).
11. Procédé selon la revendication 10, caractérisé en ce que la détermination de ladite autre règle (R21) de diffusion d'un bloc (BK) de données numéroté (K), comprend lorsque le niveau L-l, suivant le niveau L dans l'ordre d'attribution des niveaux, n'est pas vide (P100, P300) :
- une étape (PI 10, P310) de détermination, conformément à ladite règle (R) générale, à partir du numéro (K) dudit bloc (BK) et dudit identifiant (IDi), d'une deuxième liste ordonnée (L02, L03) comportant les identifiants (IDTij) des pairs destinataires théoriques dudit bloc (BK) ;
- et pour chacun desdits identifiants (IDTij) des destinataires théoriques pris dans l'ordre de ladite deuxième liste ordonnée (L02, L03), si (P120, P320) ledit identifiant (IDTij) de destinataire théorique appartient au niveau L-l : - une étape (P160, P360) de détermination de ladite liste ordonnée étendue (LOE) à partir dudit identifiant (IDTij) de destinataire théorique et du numéro (K) dudit bloc numéroté (BK) ;
- une étape (P170, P370) d'obtention du pair destinataire (PD) identifié par le premier identifiant attribué (Al, A3) dans ladite liste ordonnée étendue
(LOE) ; et
- une étape (P190, P390) d'ajout dudit pair destinataire (PD) à ladite liste (LDk) de pairs destinataires ;
- et, lorsque (P120, P320) ledit identifiant (IDTij) de destinataire théorique appartient au niveau L+l, précédant le niveau de référence L dans l'ordre d'attribution des niveaux, une étape (P190, P390) d'ajout du pair identifié (P130, P330) par cet identifiant (IDTij) à ladite liste (LDk) de pairs destinataires.
12. Procédé selon la revendication 10, caractérisé en ce que la détermination de ladite autre règle (R22) de diffusion d'un bloc (BK) de données numéroté (K) comprend lorsqu'une deuxième condition est satisfaite (P100, P300, P305) :
- une étape (P200, P400) de détermination d'un identifiant (IDBik) dit identifiant de base, à partir dudit identifiant (IDi) et du numéro (K) dudit bloc (BK) ;
- une étape (P210, P410) de détermination de ladite liste ordonnée étendue (LOE) à partir dudit identifiant de base (IDBik) et du numéro (K) dudit bloc numéroté
(BK) ;
- une étape (P220, P420) de recherche dudit identifiant (IDi) dans ladite liste ordonnée étendue (LOE) ;
- une étape (P220, P420) de détermination d'un pair destinataire (PD) identifié par le premier identifiant attribué (A2, A4) suivant ledit identifiant (IDi) dans ladite liste ordonnée étendue (LOE) ; et
- une étape (P190, P390) d'ajout dudit pair destinataire (PD) à ladite liste (LDk) de pairs destinataires.
13. Procédé selon les revendications 3 et 12, caractérisé en ce que ladite deuxième condition de ladite autre règle (R22) est satisfaite lorsque (P100) le niveau L-1 est vide.
14. Procédé selon les revendications 4 et 12, caractérisé en ce que ladite deuxième condition de ladite autre règle (R22) est satisfaite lorsque (P300) le niveau L-1 est vide, le niveau L étant incomplet (P305).
15. Procédé selon les revendications 4 et 10, caractérisé en ce que la détermination de ladite autre règle (RI) de diffusion d'un bloc (BK) de données numéroté (K), lorsque ledit niveau L-l est vide (P300) et lorsque ledit niveau de référence L est complet (P305), comprend:
- une étape (P500) de détermination conformément à ladite règle (R) générale, à partir du numéro (K) dudit bloc numéroté (BK) et dudit identifiant (IDi), d'une quatrième liste ordonnée (L04) comportant les identifiants (IDTij) des pairs destinataires théoriques dudit bloc (BK) ;
- et pour chacun desdits identifiants (IDTij) des destinataires théoriques pris dans l'ordre de ladite quatrième liste ordonnée (L04), si ledit identifiant (IDTij) de destinataire théorique appartient (P550) audit niveau L-l,
- une étape (P510) de détermination des récepteurs théoriques (RTKi) auxquels ledit destinataire théorique serait susceptible de transmettre ledit bloc numéroté (BK) ;
- une étape (P520) d'obtention, parmi lesdits récepteurs théoriques (RTKi), du pair destinataire (PD) dont l'identifiant appartient au niveau de référence L ; et
- une étape (P390) d'ajout dudit pair destinataire (PD) à ladite liste (LDk) de pairs destinataires ;
- et, lorsque ledit identifiant (IDTij) de destinataire théorique appartient (P550) au niveau L+l, une étape (P390) d'ajout du pair identifié (P560) par cet identifiant
(IDTij) à ladite liste (LDk) de pairs destinataires, ledit niveau L+l précédant le niveau de référence L dans l'ordre d'attribution des niveaux.
16. Procédé de contrôle d'un réseau (H0) pair à pair, ce procédé étant mis en œuvre par une unité de gestion (10), comportant :
- une étape (G10) de sélection d'une dimension n du réseau ;
- une étape (G25) de détermination des pairs (PPim) présents dans le réseau ;
- une étape (G30) d'attribution à chacun desdits pairs présents (PPim) d'un identifiant (IDim) comprenant des éléments binaires, l'attribution des identifiants se faisant en respectant un ordre prédéfini d'attribution des niveaux, un niveau (Lj) étant constitué par l'ensemble des identifiants comprenant un nombre j d'un élément binaire prédéterminé (bO) ;
- une étape (G50) de fourniture, à au moins un système d'aiguillage (DAi) en charge d'au moins un pair présent (PPim) ,
- de l'identifiant (IDim) dudit au moins un pair présent ; et
- d'informations permettant audit au moins un système d'aiguillage (DAi) de déterminer le caractère complet, vide ou incomplet du niveau de référence L auquel appartient l'identifiant (IDim) dudit au moins un pair présent (PPim) et d'au moins un niveau suivant ledit niveau de référence dans l'ordre d'attribution desdits niveaux.
17. Procédé selon la revendication 16, caractérisé en ce qu'il comprend en outre une étape (G26) de détermination, pour chacun desdits pairs présents (PPim), d'un système d'aiguillage (DAi) en charge de ce pair présent (PPim) et apte à créer une liste ordonnée (LDkim) apte à contenir au moins un pair destinataire auquel ledit pair présent (PPim) doit transmettre (T30) un bloc de données (BK) reçu (T10) par ledit pair présent (PPim).
18. Procédé selon une quelconque des revendications 16 ou 17, caractérisé en ce que lesdites informations permettent audit système d'aiguillage (DAi) de déterminer si le niveau L-l, suivant le niveau L dans l'ordre d'attribution des niveaux, est complet ou vide.
19. Procédé selon la revendication 18, caractérisé en ce que lesdites informations permettent en outre audit système d'aiguillage (DAi) de déterminer si le niveau L-2, suivant le niveau L-l dans l'ordre d'attribution des niveaux, est vide.
20. Procédé selon l'une quelconque des revendications 16 à 19, caractérisé en ce qu'il comporte, sur détection (G70, G110) d'un événement déterminé (ARR, DEP), les étapes suivantes :
- détermination (G80, G120) d'un niveau d'attribution Lk ;
- détermination (G90, G130) des pairs (Pjm) auxquels un nouvel identifiant doit être attribué en raison dudit événement, appelés « pairs à identifier » ;
- attribution (G200) à au moins un pair à identifier (Pjm) d'un nouvel identifiant appartenant audit niveau d'attribution Lk ;
- détermination (G210) des pairs (Pqr) conservant leur identifiant mais impactés par ledit événement, dits « pairs à notifier »;
- fourniture, (G220, G230) à au moins un système d'aiguillage (DAj) en charge d'au moins un pair à identifier du nouvel identifiant (IDjm) de ce pair;
- fourniture (G220, G230), à au moins un système d'aiguillage (DAj) en charge d'au moins un pair à identifier (Pjm) ou à notifier (Pqr), d'informations lui permettant de déterminer au moins:
- si le niveau de référence L, auquel appartient l'identifiant dudit pair à identifier (IDjm) ou à notifier (IDqr) est complet ;
- si le niveau L-l, suivant le niveau L dans l'ordre d'attribution des niveaux, est complet ou vide.
21. Procédé selon la revendication 20, caractérisé en ce que ladite unité de gestion (G220, G230) fournit en outre, à au moins un système d'aiguillage (DAj) en charge d'au moins un pair à identifier (Pjm) ou à notifier (Pqr), des d'informations lui permettant de déterminer si le niveau L-2, suivant le niveau L-l dans l'ordre d'attribution des niveaux, est vide.
22. Procédé selon la revendication 20, caractérisé en ce que, lorsque ledit événement correspond à l'arrivée un nouveau pair (NPPi) dans un réseau dont au moins un niveau est incomplet :
- ledit niveau d'attribution Lk est :
- le dernier niveau Lderatt, dans lequel les identifiants ont été attribués si ce niveau n'est pas complet ; ou
- le niveau Lderatt -1, suivant le niveau Lderatt dans l'ordre d'attribution des niveaux si ledit dernier niveau Lderatt est complet ;
- le seul pair à identifier (Pjm) est le nouveau pair (NPPi) ; et
- les pairs (Pqr) à notifier sont :
- les voisins (VNPPij) dudit nouveau pair ; et
- les pairs dudit niveau d'attribution Lk et du niveau Lk+1, précédant le niveau Lk dans l'ordre d'attribution des niveaux, lorsque ledit niveau d'attribution Lk est devenu complet suite à l'arrivée du nouveau pair (NPPi).
23. Procédé selon les revendications 19 et 22, caractérisé en ce que les pairs (Pqr) à notifier comprennent en outre les pairs du niveau Lk+2, précédant le niveau Lk+1 dans l'ordre d'attribution des niveaux, si l'identifiant dudit nouveau pair (NPPi) est le premier identifiant attribué dans son niveau.
24. Procédé selon la revendication 20, caractérisé en ce que, lorsque ledit événement correspond au départ d'un pair sortant (PSj) parmi les pairs présents (PPim) :
- lorsque (G130) l'identifiant (IDSj) dudit pair sortant (PSj) appartient au dernier niveau Lderatt dans lequel les identifiants ont été attribués :
- aucun pair n'est à identifier, l'identifiant dudit pair sortant devenant disponible;
- lesdits pairs (Pqr) à notifier comprennent les voisins dudit pair sortant (PSj)
- et lorsque (G130) ce n'est pas le cas :
-le seul pair (Pjm) à identifier est un pair (PR) quelconque dont l'identifiant appartient audit dernier niveau Lderatt, dit « pair remplaçant », ledit pair remplaçant
(PR) étant identifié par l'identifiant dudit pair sortant (PSj), l'identifiant dudit pair remplaçant (PR) devenant disponible ; -lesdits pairs (Pq) à notifier sont les voisins dudit pair sortant (PSj) et dudit pair remplaçant (PR) et, si ledit dernier niveau Lderatt dans lequel les identifiants ont été attribués était complet avant le départ dudit pair sortant (PSj), les pairs de ce niveau Lderatt et du niveau Lderatt+1, précédant le niveau Lderatt dans l'ordre d'attribution des niveaux.
25. Procédé selon les revendications 19 et 24, caractérisé en ce que lesdits pairs (Pqr) à notifier comprennent en outre les pairs du niveau Lderatt+2, précédant le niveau Lderatt+1 dans l'ordre d'attribution des niveaux, si l'identifiant dudit pair sortant (PSj) ou dudit pair remplaçant (PR) était le seul de son niveau.
26. Procédé selon l'une quelconque des revendications 16 à 25 caractérisé en ce qu'il comporte :
- une étape (G63) de réception d'une requête émise par un système d'aiguillage (DAj) pour obtenir l'adresse d'un pair identifié dans la requête ; et
- une étape (G65) d'obtention et d'envoi de cette adresse à ce système d'aiguillage
(DAj).
27. Procédé selon l'une quelconque des revendications 16 à 26, caractérisé en ce que : - ledit réseau (HO) est obtenu par fusion d'un premier sous-réseau (Hl) et d'un deuxième sous-réseau (H2), tous les deux de dimension n-1, le premier sous-réseau (Hl) ayant un niveau complet de plus que ledit deuxième sous-réseau (H2) ; et en ce que :
- le niveau d'ordre n-1 dudit réseau (HO) est constitué par :
- les identifiants appartenant au niveau n-2 dudit premier sous-réseau (Hl), complétés, dans une position (I) dite d'insertion, par ledit élément binaire prédéterminé
(bO) ; et
- par un identifiant (IDP) dit identifiant pivot, constitué par n-1 dits éléments binaires prédéterminés (bO), complétés, dans ladite position (I) d'insertion, par l'élément binaire (bl) complémentaire, cet identifiant (IDP) pivot étant attribué à un pair (PIV) dit pair pivot choisi dans un niveau incomplet si le dernier niveau (Lderattl) des identifiants attribués dans ledit premier sous-réseau ou le dernier niveau (Lderatt2) des identifiants attribués dans ledit deuxième sous-réseau est incomplet, et sinon dans un quelconque de ces deux niveaux (Lderattl, Lderatt2) si les deux sont complets ;
- chacun des autres niveaux (Lw) d'ordre W dudit réseau (H0) étant constitué par :
- les identifiants du niveau d'ordre W-l, suivant ledit ordre W dudit premier sous-réseau (Hl), ces identifiants étant complétés, dans ladite position (I) d'insertion, par ledit élément binaire prédéterminé (bO) ; et par - les identifiants du niveau d'ordre W dudit deuxième sous-réseau (H2), ces identifiants étant complétés, dans leur position (I) d'insertion, par ledit élément binaire complémentaire (bl).
28. Procédé de diffusion de données (BK) mis en œuvre par un pair (Pi) dans un réseau pair à pair, ce procédé comportant :
- une étape (T10) de réception d'un bloc de données (BK) numéroté (K) ;
- une étape (T20) d'obtention des adresses de l'ensemble des pairs destinataires (PD) dudit bloc (BK), ces pairs destinataires étant déterminés par un système d'aiguillage (DA) mettant en œuvre un procédé de communication de données selon l'une quelconque des revendications de 1 à 14 ; et
- une étape (T30) de transmission dudit bloc de données (BK) numéroté (K) à au moins un pair destinataire dudit ensemble.
29. Système (DA) d'aiguillage apte à être utilisé dans un réseau pair à pair, ce système comportant :
- des moyens (111,112,113,114) de détermination conformément à une règle (R, R21,R22, RI) de diffusion des données dans ledit réseau, de l'ensemble d'au plus n pairs destinataires (PD) auxquels un pair (Pi) doit transmettre (T30) un bloc de données (BK) numéroté (K) reçu (T10) par ce pair (Pi), en fonction d'un identifiant (IDi) comprenant des éléments binaires et destiné à identifier ledit pair (Pi), et de la dimension n dudit réseau,
- ladite règle étant sélectionnée (P40, P41) à partir d'informations permettant de déterminer le caractère complet, vide ou incomplet d'un niveau dit de référence L auquel appartient ledit identifiant (IDi), et d'au moins un niveau suivant ledit niveau de référence dans un ordre prédéfini d'attribution des niveaux , un dit niveau (Lj) étant constitué par l'ensemble des identifiants de pair comprenant un nombre j d'un élément binaire prédéterminé (bO);
- ladite règle (R, R21, R22, RI) étant:
- la règle (R) des hypercubes complets de dimension n, dite « règle générale » si une condition sur lesdites informations est satisfaite ;
- une autre règle (R21, R22, RI) déterminée en tenant compte desdites informations dans tous les autres cas.
30. Pair (Pi) apte à être utilisé dans un réseau pair à pair comportant :
- des moyens (26) de réception d'un bloc de données (BK) numéroté (K) ;
- des moyens (21,24,25) d'obtention des adresses de l'ensemble des pairs destinataires
(PD) dudit bloc de données (BK) numéroté (K), ces pairs destinataires étant déterminés par un système d'aiguillage (DA) mettant en œuvre un procédé de communication de données selon l'une quelconque des revendications de 1 à 14 ; et
- des moyens (26) de transmission dudit bloc de données (BK) numéroté (K) à au moins un pair destinataire dudit ensemble.
31. Unité de gestion (10) apte à être utilisée dans un réseau (HO) pair à pair, cette unité de gestion comportant :
- des moyens (11) de sélection d'une dimension n du réseau ;
- des moyens (11) de détermination des pairs (PPim) présents dans le réseau ;
- des moyens (11) d'attribution à chacun desdits pairs présents (PPim) d'un identifiant
(IDim) comprenant des éléments binaires, l'attribution des identifiants se faisant en respectant un ordre prédéfini d'attribution des niveaux, un niveau (Lj) étant constitué par l'ensemble des identifiants comprenant un nombre j d'un élément binaire prédéterminé (bO) ;
- des moyens (14,15) de fourniture, à au moins un système d'aiguillage (DAi) en charge d'au moins un pair présent (PPim),
- de l'identifiant (IDim) dudit au moins un pair présent ; et
- d'informations permettant audit système d'aiguillage (DAi) de déterminer le caractère complet, vide ou incomplet
- du niveau de référence L auquel appartient l'identifiant (IDim) dudit au moins un pair présent (PPim) et
- d'au moins un niveau suivant ledit niveau de référence dans l'ordre d'attribution desdits niveaux.
PCT/FR2011/053177 2010-12-31 2011-12-22 Procede de communication de donnees mis en œuvre par un systeme d'aiguillage dans un reseau pair a pair WO2012089974A1 (fr)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR1061406 2010-12-31
FR1061406A FR2970138A1 (fr) 2010-12-31 2010-12-31 Procede de communication de donnees mis en oeuvre par un pair dans un reseau hypercube incomplet
FR1151779A FR2970139A1 (fr) 2010-12-31 2011-03-04 Procede de communication de donnees mis en œuvre par un systeme d'aiguillage dans un reseau pair a pair
FR1151779 2011-03-04

Publications (1)

Publication Number Publication Date
WO2012089974A1 true WO2012089974A1 (fr) 2012-07-05

Family

ID=44369710

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2011/053177 WO2012089974A1 (fr) 2010-12-31 2011-12-22 Procede de communication de donnees mis en œuvre par un systeme d'aiguillage dans un reseau pair a pair

Country Status (2)

Country Link
FR (2) FR2970138A1 (fr)
WO (1) WO2012089974A1 (fr)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HOWARD P. KATSEFF: "Incomplete Hypercubes", IEEE TRANSACTIONS ON COMPUTERS, 5 May 1988 (1988-05-05), pages 604 - 607, XP002670899, Retrieved from the Internet <URL:http://dl.acm.org/citation.cfm?id=45190> [retrieved on 20120306] *
KATSEFF H P ED - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "Initializing hypercubes", 9TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS (CAT. NO.89CH2706-0 5-9 JUNE 1989 NEWPORT BEACH, CA, USA; [PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS], 9TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUT, vol. CONF. 9, 5 June 1989 (1989-06-05), pages 246 - 253, XP010016547, ISBN: 978-0-8186-1953-3, DOI: 10.1109/ICDCS.1989.37953 *
M. SCHLOSSER, W. NEJDL: "HyperCuP - Hypercubes, Ontologies and Efficient search on p2p networks", 1 January 2002 (2002-01-01), XP002657440, Retrieved from the Internet <URL:http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.9421> [retrieved on 20110822] *

Also Published As

Publication number Publication date
FR2970139A1 (fr) 2012-07-06
FR2970138A1 (fr) 2012-07-06

Similar Documents

Publication Publication Date Title
KR101183430B1 (ko) 피어-투-피어 네트워크에서의 수신자 구동형 스트리밍을위한 시스템 및 방법
KR101176648B1 (ko) 스트리밍 미디어의 삭제 코딩을 위한 시스템 및 방법
KR101159332B1 (ko) 확장가능한 미디어의 분산형 스트리밍을 위한 시스템 및방법
EP2695443B1 (fr) Procede pour optimiser les capacites d&#39;un reseau de telecommunication de type ad- hoc
US20080037527A1 (en) Peer-to-Peer Interactive Media-on-Demand
FR2799320A1 (fr) Procede d&#39;equilibrage de debit entre des canaux de transport de donnees, dispositif, station de base et station mobile correspondants
EP2163071A2 (fr) Procédé de détermination automatique d&#39;un groupe de pairs situés dans le voisinage d&#39;un autre pair au sein d&#39;un réseau de communication, et serveur, dispositif d&#39;analyse et équipement de communication associés
EP2248386A1 (fr) Procédé et dispositif de régulation d&#39;émission dans un réseau de télécommunication sans fil
EP1617591A1 (fr) Procédé et serveur de référencement de diffusion poste à poste de fichiers demandés par téléchargement à ce serveur
Efthymiopoulos et al. Enabling live video streaming services realization in telecommunication networks using P2P technology
EP3891935B1 (fr) Procédé de configuration d&#39;un noeud d&#39;un réseau
WO2012089974A1 (fr) Procede de communication de donnees mis en œuvre par un systeme d&#39;aiguillage dans un reseau pair a pair
FR2762735A1 (fr) Procede d&#39;ordonnancement de paquets a pertes equitables
FR2905222A1 (fr) Procede de correspondance entre identificateurs de communication de groupe et adresses de multidiffusion.
Mushtaq et al. Hybrid overlay networks management for real-time multimedia streaming over P2P networks
EP1654830B1 (fr) Procede de diffusion d&#39;information multicast etendue, systeme et produit logiciel correspondant
FR2919139A1 (fr) Mecanisme de mise a jour des parametres d&#39;un pseudo-lien
Magnetto et al. P2P streaming with LT codes: a prototype experimentation
FR2933261A1 (fr) Procede de traitement d&#39;une requete, passerelle d&#39;acces et systeme de controle d&#39;admission a un service
EP1766889A1 (fr) Marquage d&#39;un datagramme transmis dans un reseau ip et transmission d&#39;un tel datagramme
Biskupski et al. Improving throughput and node proximity of p2p live video streaming through overlay adaptation
WO2024079309A1 (fr) Procédé de retransmission coopérative dans un système omamrc avec allocation de ressources et sélections des sources à aider conjointes
EP1952599B1 (fr) Procede de diffusion maitrisee d&#39;informations
WO2008104650A1 (fr) Procede de transfert de paquets de donnees a une ressource partagee, dispositif et programme d&#39;ordinateur associes
EP2633642B1 (fr) Procédés de communication, dispositif de communication, entité de gestion, programme d&#39;ordinateur et support d&#39;informations pour la distribution hybride de données

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11815536

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11815536

Country of ref document: EP

Kind code of ref document: A1