Routing is portrayed as one of the most important prevailing challenges in research with reference to multi-hop networks in a wireless environment. Opportunistic routing (OR) protocol is an emerging area related to research, due to the improvement in communication reliability, compared to the traditional routing models. The major perception related to OR is to determine a group of neighboring node candidates, named as a candidate set using the advantages of broadcast capability of the wireless medium thereby to collaboratively transmit data packets towards the destination using the coordination of the forwarded candidate set. The design and performance of OR protocols over multi-hop wireless networks mainly depend on the processes of forwarding selection of candidates and assignment of priorities. Therefore, the researchers have designed and developed several different algorithms for those OR processes. In this paper, following a short outline on traditional routing and OR protocols, metrics involved in the design of existing OR protocols, classification of OR based protocols, and hurdles in the design of OR protocols over multi-hop wireless networks are examined. More precisely, the OR protocols are divided into two categories, based on the forwarding candidate set selection and forwarding candidate coordination methods. Furthermore, the most significant challenges of OR protocol design, such as prioritization of forwarding candidates, utilizing the cross-layer approach for candidate coordination, and achieving the quality of service also investigated.