First, assuming a mesh already exists, each node exchanges the list of all other nodes it believes is part of the mesh with its directly connected neighbors. When a node receives such a membership list from a neighbor, it incorporates that information into its membership list and forwards the resulting list to its neighbors. This information eventually propagates through the mesh, much as in a distance vector routing protocol.
When a host wants to join the multicast overlay, it must know the IP address of at least one other node already in the overlay. It then sends a “join mesh” message to this node. This connects the new node to the mesh by an edge to the known node. In general, the new node might send a join message to multiple current nodes, thereby joining the mesh by multiple links. Once a node is connected to the mesh by a set of links, it periodically sends “keep alive” messages to its neighbors, letting them know that it still wants to be part of the group.
When a node leaves the group, it sends a “leave mesh” message to its directly connected neighbors, and this information is propagated to the other nodes in the mesh via the membership list described above. Alternatively, a node can fail or just silently decide to quit the group, in which case its neighbors detect that it is no longer sending “keep alive” messages.
Some node departures have little effect on the mesh, but should a node detect that the mesh has become partitioned due to a departing node, it creates a new edge to a node in the other partition by sending it a “join mesh” message. Note that multiple neighbors can simultaneously decide that a partition has occurred in the mesh, leading to multiple cross-partition edges being added to the mesh.
As described so far, we will end up with a mesh that is a subgraph of the original fully connected Internet, but it may have suboptimal performance because (1) initial neighbor selection adds random links to the topology, (2) partition repair might add edges that are essential at the moment but not useful in the long run, (3) group membership may change due to dynamic joins and departures, and (4) underlying network conditions may change. What needs to happen is that the system must evaluate the value of each edge, resulting in new edges being added to the mesh and existing edges being removed over time.
To add new edges, each node i periodically probes some random member j that it is not currently connected to in the mesh, measures the round-trip latency of edge (i, j), and then evaluates the utility of adding this edge. If the utility is above a certain threshold, link (i, j) is added to the mesh. Evaluating the utility of adding edge (i, j) might look something like this:
ครั้งแรก สมมติว่า ตาข่ายมีอยู่แล้ว แต่ละโหนแลกเปลี่ยนรายการของโหนอื่น ๆ เชื่อว่า เป็นส่วนหนึ่งของตาข่ายกับเพื่อนบ้านเชื่อมต่อโดยตรง เมื่อโหนรับรายการดังกล่าวเป็นสมาชิกจากเพื่อนบ้าน มันประกอบด้วยข้อมูลที่เป็นรายชื่อสมาชิก และรายการผลลัพธ์ส่งต่อให้เพื่อนบ้านของ ข้อมูลนี้แพร่กระจายผ่านตาข่าย มากในระยะทางเวกเตอร์เส้นโพรโทคอในที่สุดเมื่อโฮสต์ต้องการเข้าร่วมการซ้อนทับแบบหลายผู้รับ จะต้องทราบ IP แอดเดรสของโหนดอยู่ในการซ้อนทับกัน นั้นแล้วส่งข้อความ "รวมตาข่าย" โหนนี้ นี้เชื่อมต่อโหนใหม่กับตาข่าย โดยขอบโหนรู้จัก ทั่วไป โหนใหม่อาจส่งข้อความรวมกับโหนปัจจุบันหลาย จึงรวมตาข่าย โดยการเชื่อมโยงหลาย เมื่อโหนเชื่อมต่อกับตาข่าย โดยชุดของการเชื่อมโยง เป็นระยะ ๆ ส่งข้อความ "ให้ชีวิต" เพื่อเป็นเพื่อนบ้าน ปล่อยให้พวกเขารู้ว่า มันยังต้องการเป็นส่วนหนึ่งของกลุ่มเมื่อโหนดออกจากกลุ่ม ส่งข้อความ "ปล่อยตาข่าย" กับเพื่อนบ้านเชื่อมต่อโดยตรง และข้อมูลนี้เป็นจริงโหนอื่น ๆ ในตาข่ายผ่านรายการสมาชิกที่อธิบายไว้ข้างต้น หรือ โหนสามารถล้มเหลว หรืออย่าเพิ่งตัดสินใจที่จะออกจากกลุ่ม ในกรณี ของบ้านพบว่า มีข้อความไม่ส่ง "ให้ชีวิต"Some node departures have little effect on the mesh, but should a node detect that the mesh has become partitioned due to a departing node, it creates a new edge to a node in the other partition by sending it a “join mesh” message. Note that multiple neighbors can simultaneously decide that a partition has occurred in the mesh, leading to multiple cross-partition edges being added to the mesh.As described so far, we will end up with a mesh that is a subgraph of the original fully connected Internet, but it may have suboptimal performance because (1) initial neighbor selection adds random links to the topology, (2) partition repair might add edges that are essential at the moment but not useful in the long run, (3) group membership may change due to dynamic joins and departures, and (4) underlying network conditions may change. What needs to happen is that the system must evaluate the value of each edge, resulting in new edges being added to the mesh and existing edges being removed over time.To add new edges, each node i periodically probes some random member j that it is not currently connected to in the mesh, measures the round-trip latency of edge (i, j), and then evaluates the utility of adding this edge. If the utility is above a certain threshold, link (i, j) is added to the mesh. Evaluating the utility of adding edge (i, j) might look something like this:
การแปล กรุณารอสักครู่..
