## 1 Introduction  
The _Internet of Things_ (IoT) is a vision of the future Internet that provides \"anytime, any place... connectivity for anything\" [1]. In such a context, a _thing_ refers to an identifiable entity that exists in either a physical or virtual domain and has intelligent interfaces (communication and computation capabilities) [2]. The _IoT_ is expected to seamlessly incorporate a diversity of _things_ into a holistic cohesive network via Internet-inspired protocols in a way that interaction among _things_ is facilitated. The evolutionary paradigm of the _IoT_ exhibits several distinct characteristics. First, it relies upon wireless as its main mode of communication. Indeed, the vast majority of _things_ in the _IoT_ interconnect with each other and access the Internet infrastructure and services through the use of low-power wireless which is critical for their operation. Second, communication devices participating in the _IoT_ systems are clustered in geographically proximal groups. Specifically, _things_ typically concentrate at specific locations, for example where end-users reside or work, such as intelligent house or smart office environments. Third, the _IoT_ systems are highly heterogeneous. _IoT_ incorporates a wide variety of intelligent devices such as WSNs, embedded devices, and smartphones. With constantly evolving technologies, the range of object types is likely to keep widening. Finally, instead of demanding explicit or manual intervention to make responses, _IoT_ objects are able to react autonomously to stimuli, including environment events or user instructions. These attributes greatly contribute to the transformative potential of the _IoT_, as well as the intrinsic challenges facing this approach. First and foremost, _IoT_ systems must address localized competition for wireless medium. Whilst the proliferation of wireless communication has been paving the way for the emergence of _IoT_, the growing quantities of _things_ sharing the limited spectral space place unique doubts for limited resources. As a result, devices with relatively low transmission power may suffer from reduced chance of communication and increased risk of interference, particularly at sites where objects are co-located with high density [3]. The adverse influence of competition for spectrum contest not only disturbs medium access of individual nodes, but also give rise to additional challenges affecting a broader scope. Specifically, ordinary routing algorithms unaware of underlying spectrum conditions can yield a seemingly good path which is, in fact, exposed to undesirable interference. Likewise, end-to-end flow control schemes failing to take into account spectrum-related events such as a frequency switch could result in suboptimal performance. A significant challenge is also caused by the heterogeneity of _things_ since it makes their interconnection complex. One-to-one translation gateways are historically deployed to bridge the gap between different standards and protocols used by various objects. However, the deployment process can be time consuming and error prone and, moreover, the scheme becomes increasingly unscalable as both the size and diversity keep developing. Alternative solutions are needed for the seamless integration of the intelligent objects and pervasive user experience [4]. Given the above challenges and the autonomous nature of _IoT_, we believe self-adaptive communication methodologies are key to the prospect of _IoT_. This paper takes into account strategies for adapting the communication behaviors of _IoT_-connected objects and related infrastructural components at all levels of the protocol stack, rather than only the layers directly dealing with medium at the lowerend. Specifically, the survey in Sections 3 to 7 is carried out from the physical up to the application layer. Cross-layer issues are also taken into account in Section 8, before conclusions are drawn in Section 9 with some general observations about the state of the art and possible directions for future work.