# A Survey of Internet of Things (IoT) Authentication Schemes +
## 2 IoT Generic Architecture  
While traditional Internet connects people to a network, IoT has a different approach in which it provides Machine-to-Machine (M2M) and Human-to-Machine (H2M) connectivity, for heterogeneous types of machines in order to support variety of applications (e.g., identifying, locating, tracking, monitoring, and controlling) [8]. Connecting a huge number of heterogeneous machines [9] leads to a massive traffic, hence the need to deal with the storage of big data [10, 11]. Therefore, the TCP/IP architecture, which has been used for a long time for network connectivity, does not suit the needs of IoT regarding various aspects including privacy and security (e.g., information privacy, machine's safety, data confidentiality, data encryption, and network security) [12], scalability, reliability, interoperability, and quality of service [13].  
Although numerous architectures were proposed for IoT, there is still a need for a reference architecture [14, 15]. The basic architecture model proposed in the literature is a three-layer architecture [16, 17, 18], as shown in Figure 0(a). It consists of: perception, network and application layers.  
1. _Perception layer_: It is the physical layer that senses the environment to perceive the physical properties (e.g., temperature, humidity, speed, location, etc.) using end-nodes, through the use of different sensing technologies (e.g., RFID, GPS, NFC, etc.).
2. _Network Layer_: It is the layer in charge of getting data from the perception layer and transmitting it to the application layer through various network technologies (e.g., 3G, 4G, 5G, Wi-Fi, Bluetooth, Zig-Bee, etc.). It is also responsible of data management from storing to processing with the help of middle-wares such as cloud computing.
3. _Application Layer_: It is the layer that is in charge of delivering application-specific services to the user. The importance of this layer is that it has the ability to cover numerous markets (e.g., smart cities, smart homes, health care, building automation, smart metering, etc. [1, 2]) [19].  
Another proposed layered architecture is the five-layer architecture (Figure 0(b)) [16, 17, 18, 13]. The five layers are from top to bottom: _business_, _application_, _processing_, _transport_, and _perception_ layers.  
The functions of perception, transport (i.e., network layer) and application layers are the same as in the three-layer architecture. The remaining layers of the architecture are:  
1. _Processing layer_: Also called the middle-ware layer, it is responsible of providing various types of services, mainly storing, analyzing, and processing data with respect to the computational results.
2. _Business layer_: Its work covers the overall IoT system actions and functionality. The application layer sends the data to the business layer whose role is to build business models, graphs, and flowcharts to analyze data, in order to play a role in decision making about business strategies and road-maps.  
Other architectures can also be identified in the literature. In [20; 21], the authors used a five-layer architecture based on Service Oriented Architecture (SOA) that helps the integration of IoT in enterprise services. In [22], the authors considered a non-layered approach for the architecture (e.g., cloud architecture, fog architecture, social IoT, and architecture based on human brain processing).  
For the rest of this paper, we consider the three-layer architecture.