Over the last decade, the tremendous growth in the mobile Internet user population has been accompanied by an equally exciting evolution in wireless data networks. However, quite understandably, the evolution has been distinctly characterized by an increasing degree of heterogeneity along several dimensions such as the access technology, network model, device, and application requirements. This heterogeneity, in turn, imposes a significant challenge on the design of the network protocol stack, and leads to the question: how can the protocol stack at a mobile host cater effectively to the heterogeneous characteristics of the operating environment?