# Study of Data Transfer in a Heterogeneous LoRa-Satellite Network for the Internet of Remote Things
## 3 Heterogeneous Network Architecture
### Data Formats for Hybrid LoRa-Satellite Networks  
During information transmission through a terrestrial network and further through a LEO satellite constellation, the method of information encoding is of great importance, since it affects the ratio of application and service data in the overall information stream. In our work, we focus entirely on the upper OSI layers, leaving the transport part of the stack unchanged. During the transfer of information between a single IoT sensor and the LoRaWAN gateway, only sensor data with a minimal payload can be transmitted. In general, an IoT device can be used to transmit readings of more than one sensor. In this case, each sensor's value is complimented with an identifier or parameter name. When further transmitting information from the LoRaWAN gateway to the central data collection and analysis system, the end device identifier and the network parameters should be added to the data. As a result, most IoT systems use a key-value format for information encoding. With the modern trend of using open standards, we will omit some of the proprietary binary solutions and instead discuss the following open specifications designed for M2M connectivity: JavaScript Object Notation (JSON), binary JavaScript Object Notation (BSON), Concise Binary Object Representation (CBOR), MsgPack, JSONC and Protobuf. The JavaScript Object Notation (JSON) format [42] is a subtype of the Abstract Syntax Notation 1 (ASN.1) format and is currently the de facto standard for transmitting information in web applications, as well as IoT systems. The textual representation of information in JSON makes it possible to analyze the obtained values without decoding, and the transmission of information in the \"key-value\" format increases flexibility. The availability of libraries for processing JSON messages in most programming languages makes application development much easier. At the same time, the textual basis of the format leads to larger message sizes. When each message contains all field definitions, the increase in the message size can be very significant. The binary JavaScript Object Notation (BSON) format [43] is a binary version of JSON, which allows transmitting binary data in messages instead of text. Depending on the type of encoded information, it may be more efficient than JSON, but generally corresponds to it in terms of the message size. The Concise Binary Object Representation (CBOR, RFC7049) [44] and MsgPack [45] formats use binary data representation and reduce the amount of data transferred by changing the format of the values transferred. These formats do not require the use of text field delimiters; they convert textual representations of integers, floating-point numbers and dates into a binary representation, which reduces the number of transmitted messages. Both the CBOR format and the MsgPack format do not require a preliminary definition of the transmitted data fields and are comparable in terms of the ratio of useful data to the total amount of transmitted data. The JSONC format [46] assumes the use of data compression using the zlib algorithm (RFC1950) without analyzing the transmitted data, and the degree of compression depends on the size and nature of the transmitted data. When transmitting information from IoT sensors, the message data structure can be defined in advance and, thus, field names may be omitted from each transmitted message. Structured information can also be transmitted using the Protocol Buffers (Protobuf) format [47]. Protobuf is a highly specialized binary format, in which the reduction in the size of the transmitted data is achieved through the optimal representation of data types in binary form and the use of predefined message structures. Thus, in key-value pairs, only the binary key identifier is transmitted, and not its name, which significantly reduces the amount of data transferred.