Opportunistic Routing (OR) has been investigated in recent years as a way to increase the performance of Wireless Mesh Networks. In OR, in contrast to traditional routing, instead of pre-selecting a single specific node to be the next-hop as a forwarder for a packet, an ordered set of nodes, called candidates, is selected. When the current node transmits a packet, all the candidates that successfully receive it will coordinate with each other to determine which one will actually forward it, while the others will simply discard the packet. This book is a research approach to OR. Analytic models and simulation are used to investigate main issues in OR. These include practical ones, as the selection of candidates, and theoretical ones, as the maximum performance that may be achieved using OR.