Opportunistic Networks is a new concept that is increasingly gaining ground since it appears as a concrete example of the Internet of Things, Internet of Vehicles, Industrial Internet of Things, and the Internet of Everything with Mobile ad hoc Networks' characteristics. An Opportunistic Network starts with a Seed OppNet that sets up the network; expands from the Seed OppNet to an extended Seed OppNet through devices' discovery. The characteristics of Opportunistic Networks make OppNets more challenging than any other networks. So, a deep understanding of OppNets' characteristics and demands is an unavoidable precondition before proposing any OppNets related scheme. However, under OppNets' constraints, the relevance of the Opportunistic Networks related articles in literature is yet to be established. Also, most surveys tackling Opportunistic Networks do not give a complete insight into what Opportunistic Networks stand for. This work reviews state of the art on Opportunistic Networks providing three main contributions. First, resorting to the primary definition of Opportunistic Networks, it elucidates what OppNets are, pointing out the particularities of an OppNet, its domains of applications, and challenges. Second, it provides a comprehensive review that encompasses most Opportunistic Networks' research areas: routing, intrusion detection, authentication, privacy protection, data aggregation, and the technology for OppNets, organising them in a taxonomy. Third, it evaluates the role of the Seed OppNet in Opportunistic Networks related schemes. Any proposed OppNets related scheme, to be relevant to OppNets' research, should include OppNets' characteristics and demands.