Linear and Convex Programming Based Algorithms for Network Design