Mobility is an essential and necessary feature for roaming users who connect to wireless networks via access points. Access points may have different capabilities, be connected to different networks and be installed by different providers. A mobile host will discover multiple access points in this environment. A mobile host should be able to use the best available connectivity to communicate with a correspondent host and perhaps use multiple connections for different hosts. In areas with wireless local area network access, pockets with limited or no coverage could exist. Such restricted connectivity could be compensated by neighbor hosts who form an ad hoc network and relay packets until they reach an access point. This thesis describes and...