The wireless research community aspires to conceive full duplex operation by supporting concurrent transmission and reception in a single time/frequency channel for the sake of improving the attainable spectral efficiency by a factor of two as compared to the family of conventional half duplex wireless systems. The main challenge encountered in implementing FD wireless devices is that of finding techniques for mitigating the performance degradation imposed by self-interference. In this article, we investigate the potential FD techniques, including passive suppression, active analog cancellation, and active digital cancellation, and highlight their pros and cons. Furthermore, the troubles of FD medium access control protocol design are discussed for addressing the problems such as the resultant end-to-end delay and network congestion. Additionally, an opportunistic decode-and-forward- based relay selection scheme is analyzed in underlay cognitive networks communicating over independent and identically distributed Rayleigh and Nakagami-m fading channels in the context of FD relaying. We demonstrate that the outage probability of multi-relay cooperative communication links can be substantially reduced. Finally, we discuss the challenges imposed by the aforementioned techniques and a range of critical issues associated with practical FD implementations. It is shown that numerous open challenges, such as efficient SI suppression, high-performance FD MAC-layer protocol design, low power consumption, and hybrid FD/HD designs, have to be tackled before successfully implementing FD-based systems.