Approximation Algorithms for Network Connectivity Problems