Content distribution by multiple multicast trees and intersession cooperation: Optimal algorithms and approximations