A method performed by a device for selecting a candidate node (Node 1) for live streaming services, the method comprising the following steps: calculating progress factors based on information of the device involved in the live streaming services, wherein the progress factors include download progress, DP, and supply progress, SP, for a source media file that is cut into media pieces, each media piece having its own duration, wherein the download progress DP is defined as sum of the durations of the media pieces downloaded, wherein the supply progress SP is defined as being by a buffering time smaller than the download progress DP, wherein either the buffering time is fixed, or the buffering time is flexible and is equal to the sum of the durations of a certain amount, k, of buffered media pieces, reporting the calculated progress factors to a tracker and requesting the tracker for candidate nodes list, receiving from the tracker the candidate nodes list, selecting, according to download delay requirements and policies for overlay of the live streaming services, from the candidate nodes list a candidate node, wherein the policies for overlay of the live streaming services include the policies of depth-first and breadth-first in tree traversal algorithms, wherein the policies for overlay of the live streaming services are policies for constructing the media delivery overlay of the live streaming services, wherein the media delivery overlay includes an overlay in which nodes are organized in a tree mode, wherein each node delivers media to its downstream nodes, wherein the policies for overlay of the live streaming services are indicated in a parameter returned from the tracker with the candidate nodes list. calculating progress factors based on information of the device involved in the live streaming services, wherein the progress factors include download progress, DP, and supply progress, SP, for a source media file that is cut into media pieces, each media piece having its own duration, wherein the download progress DP is defined as sum of the durations of the media pieces downloaded, wherein the supply progress SP is defined as being by a buffering time smaller than the download progress DP, wherein either the buffering time is fixed, or the buffering time is flexible and is equal to the sum of the durations of a certain amount, k, of buffered media pieces, reporting the calculated progress factors to a tracker and requesting the tracker for candidate nodes list, receiving from the tracker the candidate nodes list, selecting, according to download delay requirements and policies for overlay of the live streaming services, from the candidate nodes list a candidate node, wherein the policies for overlay of the live streaming services include the policies of depth-first and breadth-first in tree traversal algorithms, wherein the policies for overlay of the live streaming services are policies for constructing the media delivery overlay of the live streaming services, wherein the media delivery overlay includes an overlay in which nodes are organized in a tree mode, wherein each node delivers media to its downstream nodes, wherein the policies for overlay of the live streaming services are indicated in a parameter returned from the tracker with the candidate nodes list.