A Review of Identity Methods of Internet of Things (IOT)

The Internet of Things (IOT) is a recent technology originating from the field of sensor networks. It has received significant attention because it is involved in most aspects of our daily lives. The IOT vision makes objects of various kinds become part of the Internet by assigning each object a unique identifier, enabling objects to communicate with each other in the same or different environments. IOT can collect, process, and exchange data via a data communication network. There are many methods for identifying objects; some have existed since the beginning of IOT innovation, such as Radio Frequency Identification (RFID), Barcode/2D code, IP address, Electronic Product Codes (EPC), etc. Continuous development in IOT domain and the large number of objects connected to the Internet daily require an improved identification method to cope with the rapid development in this field. Many modern methods have been proposed recently, based on various technologies such as computer vision, fingerprinting, and machine learning. This paper introduces an overview of IOT and discusses its fundamental elements; it mainly focuses on identification of IOT which is considered the main part that the IOT systems rely on. The paper discusses the existing identification methods for IOT. Moreover, it provides a review of the modern identification methods proposed in recent literature.


Services
IOT applications can mainly provide four types of services; Identity related services, Information aggregation services, Collaborative Aware services, and Ubiquitous services. The Identity related services are concerned with object identity information, whereas Information aggregation is used to collect, summarize, and process all the information from objects and send it back to the application.
Moreover, Collaborative Aware services are used to turn the collected information into a decision and send appropriate responses to the devices. The last service is Ubiquitous services, which are responsible for providing Collaborative-Aware services immediately to anyone at any time and place [8] [9] [10].

Semantics
Semantics is considered as the brain of IOT. It is used to extract knowledge smartly from devices to take appropriate decisions in order to provide the de-

Wireless Sensor Network (WSN)
Wireless sensor network (WSN) is one of the rapidly growing sections in networking today [11]. It is a self-configured wireless network consisting of independent devices which are spatially distributed [12]. Formally, a WSN can be defined simply as a network of low-size and low complexity devices known as nodes that use wireless communication link to sense the environment and send the data gathered from the monitored environment to control unit for further processing and decisions. Moreover, the collected data is forwarded via multiple hop relaying, to a sink or base station, which is considered as an interface between users and the network, the sink can use the data locally, or is connected to other networks (e.g., the Internet) via a gateway [13] [14].
Typically a wireless sensor network contains thousands of sensor nodes, which can communicate among themselves using radio signals, so it is equipped with sensing and computing devices, radio transceivers and power components.
All the nodes in a wireless sensor network are resource constrained: they have limited storage capacity, processing speed, and communication bandwidth [13].
WSN usually uses sensors for monitoring physical or environmental conditions, such as motion, temperature, vibration, pressure, sound, or pollutants.
Furthermore, sensors can observe other phenomena, not just ambient conditions. These sensors are deployed widely in many remote sensing applications, such as infrastructure monitoring, habitat monitoring, intrusion detection, target tracking and surveillance, oceanography, structural health monitoring, biomedical health monitoring, precision agriculture, and hazardous environment exploration and seismic sensing [12] [13] [14].  [14]. When the need arises to deploy WSN in any environment, a wireless sensor network is considered a subpart of IOT and one of its most important elements [12].
This paper aims to present the existing object identification methods and provide a review of the modern identification methods proposed within the last decade to provide a basis for new approach for identifying IOT objects. It is organized as follows: Section 1 presents a brief introduction about IOT, Wireless sensor Network, and the IOT elements; Section 2 provides an overview of IP addressing methods; Section 3 discusses the prior object identification methods; Section 4 contains a review of some recent methods that have been proposed in the last decade. Section 5 provides an introduction about fuzzy logic, machine learning, and deep learning, which helps to choose the best identification method for IOT objects. Finally, Section 6 concludes the paper.

IP Address
The Internet Protocol (IP), developed in the 1970s, is considered the prime communications protocol in the Internet protocol suite for relaying data across a network. There are two main versions of IP in use: IPv4 and IPv6. Each one of them defines an IP address in a different way. IPv4 provides about 4.3 billion addresses, while IPv6 will efficiently provide 85,000 trillion addresses [12]. In the present day, these two versions of IP are widely used to connect different networks together [15].
(IPSO) IP for smart objects (IPSO) has promoted IPv6 as the main solution for accessing and communicating with all kinds of smart objects. Using the IP address to identify objects will cause difficulties when an object or device is moving. In this case, the IP address cannot identify the object conclusively, even if the roaming function is enabled. The roaming function is based on a unique device identity and not the IP. Therefore there is a need to apply a unique object/device identity instead of IP addresses to cope with roaming situations [16].

IPv6 and 6LoWPAN
To enable any objects to be connected to the Internet, they should have an address so that they can be detected and monitored, especially in IOT environment  [18]. In this regard, IPv6 founds to be more reliable and useful as compared to IPv4 in assigning addresses to devices, routing in networks, translation of network address, support of configuration of protocol, and security of information and data [15].

The Prior Identification Methods
All objects in the IOT environment must be identified in some way. Thus, each object must have a unique identity to connect with other objects and exchange information within the same or different domain. This section will mention some of the prior identification methods in use to identify IOT objects.

Radio Frequency Identification (RFID)
RFID technology first appeared in 1945. It was one of the important developments in the embedded communication field and enabled the design of micro-  [25].

RFID System
The RFID system consists of tags, readers, and applications, as illustrated in The RFID reader is made up of a radio frequency interface module and control unit; it uses radio waves to communicate with the RFID tag. RFID reader is also known as transceiver or interrogator (transmitter/receiver). Its main task is to activate the tags, structure the communication sequence with the tag, and transfer data between the tags and application software.
Application system is known as data processing system, which can be an application or database. Its main function is to initiates all readers and tags activities.
RFID provides a quick, reliable, and flexible radio frequency (RF) way for electronically detecting, tracking, and controlling various things.
The RFID system generally covers three main aspects: monitoring, tracking, and supervising [25].
In the RFID system, it is necessary to calculate the read range that is considered one of the main features that affect the performance. The following equation shows that the RFID system with RTD max is the distance between the reader and tag antenna, so the read-range can be calculated using Friis' uplink model in where λ is the wavelength calculated using the speed of light c = 3 × 10 8 m/s divided by frequency f = 920 MHz. For antenna, t P , and t G are respectively, reader's transmitted power transmission gain, and the tag's antenna gain, r G [26]. th P designates the distance into which the reader radiates the power.
RFID has been widely used in many areas and applications such as logistics, pharmaceutical production, health care, passport and airport luggage tracking, toll system, retailing, supply chain management, identification, and access control. It was used for the first time in the Second World War in Britain to identify a friend or enemy. In 1999, RFID was founded at the Auto-ID center at MIT.
RFID technology is considered one of the main technologies in IOT. It plays an important role in solving identification problems of objects. It has great control over IOT, which is now largely used for identifying, tracking, monitoring objects, animals, and people. However, it transmits the identity of an object or person wirelessly using radio waves in the form of a serial number/Id.

Barcode/2D Code
A bar code is an optical representation of machine-readable labels attached to items that record data related to the item. It is widely used in stores to provide product information, such as product name, manufacture date, and price. This information is captured by a mobile phone camera encoded in the form of numbers and letters with a combination of bars and spaces of varying width. It can be decoded with a reader to obtain the recorded information. Usually, the reader is a laser scanner, but sometimes cameras can be used. There are three types of barcodes of Alpha Numeric, Numeric, and 2 Dimensional Barcodes (2D code) [12] [23].

Electronic Product Codes (EPC)
EPC codes are an identification standard developed by GS1 AISBL in a uniform resource identifier form. They are used in IOT field to identify and capture static information of objects such as name and manufacture. The main advantage of EPC code is that it provides unique identification of a static device object referring to a product. The disadvantages of EPC model are that different EPCs may encode the same product in heterogeneous codes, which could be confusing [16].

The Modern Identification Methods
This section provides a review of the modern IOT object identification methods that have been proposed recently in the last seven years.

Identification Using the Fingerprints of Things
The process of collecting device or object information to describe it is known as device/object fingerprinting. It aims to extract different types of information about devices, such as software, operating system, and hardware components, to create a unique signature called a fingerprint [30]. The IOT-ID, first calculates the clock oscillator PUF, which is needed for each microcontroller to determine the speed with which the microcontroller operates, but due to variations in the manufacturing process of clock oscillators, the number of clock cycles counted for a specific time period with one clock oscillator varies from one another. We have two clocks, clock1 and clock2, for a certain time "t", if M is the number of clock cycles counted by clock1 and N is the number of clock cycles counted by clock2, will be calculated by: Equation (3) is used to create a PUF for a clock oscillator by aggregating the clock cycle count values of clock2 and clock1 to arrive at the total clock cycle count (clock count ) calculated as the sum of clock cycles: Second, the IOT-ID calculates the Analog-to-digital converter (ADC) PUF, which is included in every IOT device microcontroller. ADCs generally support both single and differential modes, where (ADC signal ) is the expected output from the voltage difference between the input voltage ( in V ) and ground w. Which is calculated by: res is the resolution supported by ADC, and ref V can be either connected to an internal or external reference or to the device power supply in an IOT device.
The (ADC diff ) is the voltage difference between two pins ( 1 Combining all these components together enables IOT-ID to be robust and act as a device-specific identifier. Moreover, they are implemented as a two stages edge machine learning (ML) model, which is first used to gather and store the features of IOT-ID for each instance, then IOT-ID had been trained for all devices to identify the device instance accurately. Furthermore, a new IOT-ID is then compared with the trained model to identify the device [34].

Identification Using Computer Vision
Computer vision is a scientific field that makes a computer gain a level of understanding of digital images or videos. It contains methods for acquiring, analyzing, and processing the digital images. In which the artificial systems are used to extract information from images. This information can be in many forms. For example, video sequences have views from multiple cameras.
Various computer vision methods solve real-world problems. These methods are identification, detecting events, computer-human interaction, object recog- Computer vision consists of three main parts: the data acquisition part, the representation of data, and a decision part [35].
Authors in [36] have proposed a work that combines computer vision, deep learning, and IOT. They use U-Nets for semantic segmentation, which is an image processing technique used to associate the pixels of an image to a class label, which can help identify separate objects.
In this work, U-Nets architecture had been used to analyze 500 The performance of these algorithms is compared to the same dataset to specify the best technique to solve the problem.
Here, an IOT system is used to identify fire initiation and record the temperature and humidity variations for further analyses [36].

Identification Using Machine Learning Methods
Machine learning (ML) is a branch of artificial intelligence (AI) that was introduced in the late 1950s. It improved rapidly and is now a powerful technique used extensively for a wide range of tasks, including classification, regression and density estimation in various application areas, such as computer vision, speech recognition, bioinformatics, spam detection, and fraud detection.
Many ML algorithms can be implemented with IOT systems to make them more efficient and scalable, such as SVM, Reinforcement learning, and Neural Networks [37].
Many researchers have adopted ML technologies to their work in various computing domains. Examples include, the research paper provided by authors in [38] which applied Random Forest and Supervised Machine Learning algorithm to IOT device features extracted from network traffic data of individual devices. These traffic data was used to identify IOT device types from a list containing many devices. The white list used here ensures that only authorized IOT devices can connect to the network. They are manually labeled network traffic data from 17 distinct IOT devices, representing nine types of IOT devices to train and evaluate multi-class classifiers [38]. Another work presented in [39] has applied ML on network traffic data generated by various devices connected to a network to identify IOT devices accurately. The authors have collected and labeled network traffic data from nine specific devices, PCs, and Smartphones to train and evaluate the classifier. They trained a multi-stage meta classifier using supervised learning, which consists of two stages. The first one is to distinguish between traffic data generated by IOT and non-IOT devices.

Review of Fuzzy Logic, Machine Learning and Deep Learning Use in IOT Identification
This section provides an introduction about fuzzy logic, machine learning, deep learning and neural Network, in order to find an appropriate method that fits the requirements of identifying IOT objects. Furthermore, the relevant related work in various fields and in IOT platform will also be discussed.

Fuzzy Logic
Fuzzy Logic was proposed by Lotfi Zadeh in the 1960s. The idea of fuzzy logic is essentially based on membership function which becomes the backbone of fuzzy set theory. Fuzzy logic was improved to solve problems that classical logic (binary logic) cannot address, such as contexts that need to deal with multiple values not only (0 or 1), which requires to make a decision by considering more information. In such a case these variable are usually known as linguistic variables and they can be represented by characters like "distance" whose values could be "short", "very short", "long", "very long", and so on. With fuzzy logic the answer to the same question will differ according to the case such as answering the question of how big a building is? The answer could be kind of fuzzy, such that the person who lives in a village, a 5 floors building could be big, but for a person who lives in Chicago, the same building will be considered very small. Fuzzy logic plays an important role in decision making but will not be able to work in inference rules task where prior knowledge is required [40] [41] [42].
Fuzzy logic can give an accurate result, if it is combined with other methods such as Artificial Neural network, although it will never give 100% accuracy result. One of the best accuracy results was 80%, which was achieved by the work in [43] which combines fuzzy logic and neural network to develop an algorithm that was used to track and predict object location when it goes offline and becomes unable to send reports about its location. The algorithm works by recording history of movement of the object, then use the recorded data to estimate and get the future object location [43].

The Use of Fuzzy Logic in IOT Platform
Fuzzy logic has been implemented in various IOT environments such as smart buildings; basically for security purpose, surveillance and alarm systems that always aim to save lives and property from risk. Like in the research paper [41], a fuzzy logic based Fire Monitoring and Warning System (FMWS) for smart buildings, was created to early detect true-fire existence, which works by monitoring and detecting the true fire incident then notify the owner to take suitable action in order to stop fire. The proposed fuzzy logic system uses multiple sensors (e.g: temperature sensor, flame sensor) to collect the required information based on this information an accurate result that shows the true existence of fire is produced this result will also help to reduce false alarms [41]. Also in [42] fuzzy logic has been proposed to control the indoor temperature based on reading of outdoor temperature and humidity. The outdoor data is obtained with the aid of many devices, which will also help in analyses of the gathered data. The temperature monitoring system will help in adapting the indoor locations of the smart cities in order to make it more comfortable for people who stay there [42]. In context of home security which is considered as a prime concern for home owners, a fuzzy smart home control system (SHCS) is proposed in [44], that gives the home owner the ability of remotely controlling the home applications based on Internet of Things (IOT) with the improvement of solar charger, the system supports many devices like lamps, speed-controlled fan, window blind and security gate. By the end of the system two different classifiers were selected in order to measure the accuracy of the fuzzy system and the results shows that the best accuracy achieved is equal 81% [44]. An intelligent health care system is proposed in [40] that use fuzzy logic and IOT to help people who live in remote areas to know whether they are suffering from serious health conditions and take appropriate action accordingly by contact the nearest hospital. The system takes the necessary information from three different sensors (body temperature sensor, pulse rate sensor, and heartbeat rate sensor) the collected data are managed and transmitted to the fuzzy logic system via communication and network devices to determine the patient condition and make a decision to take the suitable action. This system has been combined with neural networks to create a fuzzy neural network, which enhance the system work and achieves the best accuracy results [40].
The above introduction of fuzzy logic and its related work shows that the use of fuzzy logic will never give 100% accuracy, so we conclude that fuzzy logic is not suitable for identification of IOT objects because identification must be very accurate and specific.

Machine Learning (ML)
Machine learning (ML) is one of the most impressive fields in computer science.
It was introduced in the fifties in the past century as a subfield of artificial intelligence. ML gets received great attention because it has the ability to construct systems that capable of learning from previous experience or data.
Machine learning is concerned with analyzing large collection of data, which makes it to be implemented widely in various areas, like: pattern recognition, spam filtering, handwriting recognition, activity detection, and it has frequently used for smart data analysis. ML is also data driven and general in nature so it can be used to make a decision in many general tasks.
The implementation of a ML algorithm mainly consists of two phases: training and testing. In the training phase, a set of input data named a training set is adapted to build a model that helps in making a decision to solve a particular problem. The produced output from the model will be tested by matching it with the current input in testing phase.
ML is ideal for solving three major types of problems: 1) Classification: is the separation of the problem into set of associated samples which represents all the possible categories (classes) related to the problem.
An example of ML classification task is like, specifying an e-mail message is spam or not, determining whether an object is a star, a galaxy, or a quasar. Other applications include digit and speech recognition, identity fraud detection, etc.
All the mentioned problems can be solved by using the following algorithms Support Vector Machine, Nearest Neighbor, Random Forest, and many others.
2) Regression: is the evaluation of the relationship among dependent variables from one or more independent variables. For example: weather forecasting, estimating life experience, predicting the cost of a house, and prediction of population growth. Such regression problems can be solved by using algorithms like Random Forest or Linear Regression.
3) Clustering: is the dividing of inputs into groups (clusters), which are mainly used to distinguish between the input features of the same objects, for example: among distant galaxies, specifying which features or collection of attributes are most important in distinguishing between galaxies. Another example, determining the main features that separate customer segments from each other to be treated with different privileges [35]

The Learning Types
The learning algorithms are divided into four main categories: supervised, unsupervised, semi supervised and reinforcement as shown in Figure 3.
In supervised learning the input vectors (labels) and output vectors of the training set are known from the beginning and can be calculated if any of the labels are unknown, their operational data will be available to be used instead. Supervised learning is able to handle two main tasks, classification and regression.
Unsupervised learning does not require any label for the training set. It actually uses data that has no labels and the aim is to explore the data in order to find the objects that carry the same features, for example, distinguishing the customers with similar attributes who can then be treated similarly.  Semi-supervised learning has been used in many domains such as video indexing, bioinformatics, and text processing. It can deal with classification, regression and prediction tasks [48].
Reinforcement learning is used to solve problems in which suitable action or sequence of actions should be taken. It works by keeping trying until it achieves the optimal goal, such as in driving vehicle, skill acquisition, game playing, robotics, and navigations.
In this learning type, the algorithms try to find the problem output according to set of parameters. Then, the predicted output becomes an input parameter and new output until the optimal output is achieved. Artificial Neural Networks (ANN) and Deep Learning, which will be presented in the following sections use this type of learning [37] [45] [47] [48] [49].

Review of Machine Learning Use in Various Fields
Machine learning has been used in a wide range of application areas, such as computer vision, face recognition, speech recognition, object classification, object detection, spam detection, fraud detection, advertising networks and bioinformatics [37]. The work in [35] presented an experimental study that combines support vector machine (SVM) with adaptive boost (Adaboost) for classification of pedestrian and vehicle image. The experiment is implemented on a large data set containing 4000 pedestrians. Many valuable results are obtained by analyzing the variances in performance caused by different training and test sets [35].

Machine Learning and IOT
ML algorithms have been involved in all the applications that based on data science such as data mining, information retrieval systems, search engines, big data analysis, text classification, object identification, and wide used in IOT applications [45] [50]. Many studies presented an overview of using IOT with ML in different applications and services and come out with the conclusion that machine learning gives devices connected to IOT a brain and make them able to think and make decisions [51].
Machine learning and its various techniques has been implemented in IOT security, such as in [52] which addresses the security issues regarding hardware, software, and protocol level in IOT platforms. Moreover, it provides a review of using machine learning approach for malware detection, behavior profiting, and fingerprinting [52]. Authors in [53] provide a valuable survey on the use of machine learning and deep learning methods for security of IOT systems. Their aim was to help researchers to effectively improving the security of IOT system [53].
In Internet of Vehicles (IOV), particularly in automobiles part, the major concern is traffic monitoring. So authors in [54] implemented ML approach that

Artificial Neural Network (ANN)
Artificial Neural Network (ANN) is inspired by the biological neural network of human brain, which is combination of large numbers of interconnected neurons, that are used to process input signals coming from various human body parts, such as: eyes, tongue, ears, nose, and hands.
Each neuron consists of three main parts: 1) Dendrite: is responsible of receiving input signals.
2) Soma: works as a processor, which collects and calculates the signals received through dendrite. 2) Back-Propagation.

Deep Learning (DL)
The term Deep Learning is a powerful method that is considered a modern update of artificial neural networks. It is essentially concerned with constructing larger and complex neural networks with large number of hidden layers, that are suitable for handling big data such as data in image pattern recognition, speech recognition, and IOT applications. The most important deep learning algorithms are: 1) Deep Boltzmann Machine (DBM).

Review of Deep Learning Used in IOT Platform
Deep learning (DL) can allow IOT devices to interpret any data and intelligently react to both user and environmental events, but it has to regard performance and power requirement.
Some methods has presented the use of deep learning in IOT platforms such as the work in [55] [55].
Furthermore, Deep learning is widely used in IOT applications that are based on surveillance and object detection. Huge amount of data are need to be processed quickly and it requires quick response. In such case cloud computing is not useful because it is unable to meet the processing and response time requirements, so the problem can be solved using fog computing that has the ability to benefit the resources in the edge of the network along cloud resources. So the work in [56] has developed a deep learning-based fog cloud deployable system, called EdgeLens, for real object detection in IOT application platform. The proposed framework is deployed in fog cloud environment in order to leverage the advantages of fog computing to provide better quality for such IOT applications [56]. Also authors in [57] have presented an IOT discovery approach using Deep Neural Network (DNN) based on object detection. They apply You Only Look Once (YOLO) object detection algorithm to detect and localize signal objects in time and frequency [57]. Another method presented in [58] called IOT interaction, uses machine learning based gaze estimation and object detection technique to identify IOT devices, to allow the user to control the device by making specific hand gestures. The hand gesture, is recognized and sent as a command to IOT system to create the action [58].
Summary of the above reviewed method is shown in the following Table 1.
From the above review of machine learning, neural network and deep learning, we conclude that using such method will result in powerful and robust IOT object identity because it has the ability to perfectly deal with any classification problem and identification is considered a classification problem.

Conclusions
The IOT concept is a new paradigm in which huge numbers of heterogeneous smart objects or things are connected to one Internet environment. IOT objects can interact with each other within the same environment and also with their neighbors. IOT aims to provide some services that benefit humanity and improve quality of their life.
The foremost important issue in all IOT platforms is to enable objects to be easily distinguished. This will be performed by identification, which defines proof of identity information for each object in the IOT world that usually identifies a unique object, such as a person, device, or any entity. The unique identity makes the object able to produce, process, and exchange data with other objects in the same or different scope. So the efficiency of IOT systems relies on the identification method applied to the system, which makes it necessary to adapt a robust identification method to ensure the best system performance. The problem of finding the suitable identification method for specific IOT platforms is however always a concern, that there is no common identification method that can be used for all IOT platforms yet.
The above literature of the existing object identification methods in IOT, shows that there are various identification methods used since the IOT concept was launched several years ago like: RFID, Barcode/2D code, IP address, EPC, etc. The rapid and continuous development in the field however requires development in identification methods as well, so there are many modern methods proposed recently based on various technologies such as computer vision, fingerprinting, machine learning, etc. Although there are many methods such as fuzzy logic, Neural Networks and Deep learning, can be adapted in many fields but have not been used for identification of IOT objects, and will lead to a significant change in the field if it is correctly used for that.
This paper provides an overview of the preceding identification methods as well as review of the modern identification methods on the various identity sectors, which were proposed recently by researchers and give details of some of the mathematical models they have proposed. By the end of this review we provide an introduction to fuzzy logic, Machine learning, Neural Networks and Deep learning, in addition to their uses for objects identification.
This review gives a deep understanding and enough knowledge about the various methods which exist and the value of using them for identification, which helps in deciding the use of Deep Neural Network for developing a new and robust identification technique for IOT objects.

Conflicts of Interest
The authors declare no conflicts of interest regarding the publication of this paper.