A method for implementing multicast on shared network, comprising: receiving a multicast program request from a terminal device; wherein the multicast program request comprises multicast program information and a terminal device identifier indicating the terminal device; updating a table of correspondence between multicast program and terminal device according to the multicast program information and the terminal device identifier; characterized in that the table of correspondence between multicast program and terminal device comprises a plurality of entries, each entry records a correspondence between multicast program information indicating a multicast program and terminal device identifier indicating terminal devices that have requested the multicast program indicated by the multicast program information of this entry; and broadcasting the updated table of correspondence between multicast program and terminal device and a multicast program according to the multicast program request to the terminal devices; wherein the updated table of correspondence between multicast program and terminal device is used to indicate whether a terminal device needs to receive the broadcasted multicast program, wherein the terminal device identifier in the entry is terminal ID mask information, wherein the terminal ID mask information comprises a plurality of bits that respectively corresponds to different terminal devices on the shared network, and each bit is used to indicate whether a corresponding terminal device requests playing of the multicast program; adding the terminal ID mask information of the terminal device that requests playing of the multicast program to the header of the multicast data packet which bears the multicast program according to the updated entry of the correspondence between the multicast program information and the terminal device identifier; and sending the multicast data packet to each terminal device. receiving a multicast program request from a terminal device; wherein the multicast program request comprises multicast program information and a terminal device identifier indicating the terminal device; updating a table of correspondence between multicast program and terminal device according to the multicast program information and the terminal device identifier; characterized in that the table of correspondence between multicast program and terminal device comprises a plurality of entries, each entry records a correspondence between multicast program information indicating a multicast program and terminal device identifier indicating terminal devices that have requested the multicast program indicated by the multicast program information of this entry; and broadcasting the updated table of correspondence between multicast program and terminal device and a multicast program according to the multicast program request to the terminal devices; wherein the updated table of correspondence between multicast program and terminal device is used to indicate whether a terminal device needs to receive the broadcasted multicast program, wherein the terminal device identifier in the entry is terminal ID mask information, wherein the terminal ID mask information comprises a plurality of bits that respectively corresponds to different terminal devices on the shared network, and each bit is used to indicate whether a corresponding terminal device requests playing of the multicast program; adding the terminal ID mask information of the terminal device that requests playing of the multicast program to the header of the multicast data packet which bears the multicast program according to the updated entry of the correspondence between the multicast program information and the terminal device identifier; and sending the multicast data packet to each terminal device.