In addition, the preamble header allows the receiver to identify the beginning of a transmission and calibrate other parameters, such as the intensity and color of the transmitting LED.
For error detection, we add a CRC(cyclic redundancy check)value, which is calculated on the payload and added to the end of the frame.
More efficient bit framing may employ variable length frames, error correction codes, and compression, which are eliminated from our discussion for simplicity.
To evaluate the covert channel we implement a transmitter for the OpenWrt operating system[56].
The OpenWrt is an open- source Linux based OS, used on embedded devices such as routers, gateways, and handheld devices.
It supports many type of routers from a wide range of vendors including Cisco, Linksys, D-Link, and others[57].
Using OpenWrt, we were able to develop the LED control module and test it on different types of hardware.
Note that the OpenWrt source-code includes many extra features such as advanced routing, firewalling, tunneling, and load balancing.
In Linux, the hardware LEDs may be accessed from the kernel space driver or user space process[58].
The kernel space driver can directly access the appropriate GPIO pins in order to turn the LEDs on and off.
Such low-level implementation is device specific and requires compilation of the L