Hello everyone, I'm working on the puma implementation that comes with ns2.35 and I found the next, first I explain a little bit of background about this protocol. In the original Puma behavior only the receivers would join the multicast group and then the elected core (among the receivers) will generate Multicast Announcement to form the mesh of the network that will contain other receivers and the intermediate nodes that connect these receivers with the elected core. Also, these multicast announcement are supposed to create connectivity lists (routing information) in each node of the network even though they don't belong to the mesh and with this information a sender won't need to join the mesh, it would just send the data packet to the parent node (next hop) that sent the multicast announcement to it. And the packet will travel so, until reaches one mesh member and then it would be propagated through the mesh. So this behavior is expected from the implementation in ns2.35 of the puma protocol but analyzing (and running) the tcl file that comes with ns2.35 distribution (puma.tcl under /ns-2.35/tcl/ex) I noticed two things:
1.- If the senders Don't JOIN explicitly the multicast group, the other nodes won't forward their packets (these other nodes have also to join the multicast group explicitly, which breaks the purpose of the protocol). 2.- There's no mesh formation since the nodes that don't join the mesh explicitly don't even forward the multicast announcements generated by the receivers. By the puma.tcl file all the nodes (except 5, from #10 to #14 join explicitly to the multicast) and the lower part nodes in the grid that is formed in this tcl file don't get any file from the senders (node #0 to #4). These middle part nodes are supposed to join implicitly because the lower part nodes are receivers and they should by their mesh children. Any comment/discussion about this implementation of the PUMA protocol would be really helpful. Thanks in advance.
