节点自私问题是目前应用层组播技术面临的挑战之一.自私节点可能有意或者无意地停止转发某些数据包,导致流媒体质量下降.为了解决应用层组播中节点自私性问题,提出了一种利他驱动的应用层组播,简称ADALM机制.ADALM根据一个节点对其他节点的转发贡献,计算出该节点的利他值;基于利他值构造组播树,使得利他值较大的节点位于树的较高层.和本领域其他研究相比,ADALM在利他值计算和组播树构造方面均有创新:首先,利他值基于父亲节点和孩子节点的反馈,使得系统可以有效地检测出自私节点;节点无需发送额外的探测包去测量其邻居节点的服务质量;在组播树的构造和维护过程中,仅需要调整O(lgN)个节点;最后,利他值计算和组播树构造采用分布式方法来实现.仿真结果表明,即使存在一定比例的自私节点,ADALM也能构造一棵高性能的组播树,并且具有较低的控制负荷.
Selfishness issue is one of big challenges of current application-layer multicast techniques.The selfish participants might stop forwarding data accidentally or deliberately,which will affect the overall streaming quality.To address the selfishness issue in the application-layer multicast,an altruism driven application-layer multicast(ADALM) is presented.ADALM defines an altruism value for each node associative to its contributions to the system.The multicast tree is constructed to place the nodes with greater altruism value at the higher layer of the tree.As compared with other studies in this area,ADALM exhibits innovative advantages in both altruism value computation and multicast tree construction.Firstly,the node's altruism value is generated from the feedback from its parent and children,which enables the system to detect the selfish nodes effectively.Peers don't need the extra probe messages to measure the QoS of their neighbors.During the process of tree construction and maintenance,only O(lg N) nodes needs to be adjusted.Lastly,the altruism value calculation and multicast tree construction are realized in a decentralized manner without any single point of failure.Simulation results show that even with a significant portion of nodes being selfish,ADALM is able to build a dissemination tree that provides high overall streaming quality with low control overhead.