This book teaches readers how wireless networks work, why some of their properties impact wireless network performance at the application level, and what both network engineers and application developers can do to cope with these challenges. Internet users increasingly rely on wireless access links for diverse tasks such as web browsing, video conferencing, interactive games, and data sharing. Irrespective of how they access the Internet, they expect good performance and a high quality of experience. Unfortunately, wireless access networks are much more challenging to build than wired networks. In wired networks, signals used for communication are contained in a carefully engineered transmission medium. In contrast, wireless signals travel in our physical environment, where the presence of obstacles, interference, and mobility can affect communication. In addition, network performance can differ significantly across physical environments. As a result, the performance of wireless links is often lower and less predictable than that of wired links. The author structured the book according to the layers in the Internet protocol stack, similar to traditional network books. However, rather than presenting a general description of each layer, the focus is on wireless networks and how they differ from wired networks.