A Utility-Based Approach to Bandwidth Allocation and Link Scheduling in Wireless Networks