1
0
Fork 0
cl-sites/w3.cs.jmu.edu/kirkpams/OpenCSF/Books/csf/html/Wireless.html

372 lines
28 KiB
HTML
Raw Normal View History

2025-01-28 10:11:14 +01:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>5.7. Wireless Connectivity: Wi-Fi, Bluetooth, and Zigbee &mdash; Computer Systems Fundamentals</title>
<link rel="stylesheet" href="_static/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous" />
<link rel="stylesheet" href="_static/css/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/normalize.css" type="text/css" />
<link rel="stylesheet" href="../../../JSAV/css/JSAV.css" type="text/css" />
<link rel="stylesheet" href="../../../lib/odsaMOD-min.css" type="text/css" />
<link rel="stylesheet" href="_static/css/jquery-1.11.4-smoothness-ui.css" type="text/css" />
<link rel="stylesheet" href="../../../lib/odsaStyle-min.css" type="text/css" />
<link rel="stylesheet" href="_static/css/csf.css" type="text/css" />
<style>
.underline { text-decoration: underline; }
</style>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.4.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": {
scale: "80"
}
});
</script>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="index" title="Computer Systems Fundamentals" href="index.html" />
<link rel="next" title="8. Extended Example: DNS Client" href="Extended5DNS.html" />
<link rel="prev" title="6. Link Layer" href="LinkLayer.html" />
</head><body>
<nav class="navbar navbar-expand-md navbar-dark navbar-custom fixed-top">
<a class="navbar-brand py-0" href="index.html"><img src="_static/CSF-Logo-Square-Text.png" alt="OpenCSF Logo" height="40em" class="py-1 px-2 mb-0 align-center rounded-lg bg-white" /></a>
<!-- Show a navbar toggler on mobile -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#defaultNavbars" aria-controls="defaultNavbars" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="defaultNavbars">
<ul class="navbar-nav mr-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle jmu-gold rounded" href="Wireless.html#" id="navbarDropdownChapters" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contents</a>
<div class="dropdown-menu scrollable-menu" role="menu" aria-labelledby="navbarDropdownChapters">
<a class="dropdown-item" tabindex="-1" href="Wireless.html#"><b>Chapter 1</b></a>
<a class="dropdown-item" href="IntroConcSysOverview.html">&nbsp;&nbsp;&nbsp;1.1. Introduction to Concurrent Systems</a>
<a class="dropdown-item" href="SysAndModels.html">&nbsp;&nbsp;&nbsp;1.2. Systems and Models</a>
<a class="dropdown-item" href="Themes.html">&nbsp;&nbsp;&nbsp;1.3. Themes and Guiding Principles</a>
<a class="dropdown-item" href="Architectures.html">&nbsp;&nbsp;&nbsp;1.4. System Architectures</a>
<a class="dropdown-item" href="StateModels.html">&nbsp;&nbsp;&nbsp;1.5. State Models in UML</a>
<a class="dropdown-item" href="SequenceModels.html">&nbsp;&nbsp;&nbsp;1.6. Sequence Models in UML</a>
<a class="dropdown-item" href="StateModelImplementation.html">&nbsp;&nbsp;&nbsp;1.7. Extended Example: State Model Implementation</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 2</b></a>
<a class="dropdown-item" href="ProcessesOverview.html">&nbsp;&nbsp;&nbsp;2.1. Processes and OS Basics</a>
<a class="dropdown-item" href="Multiprogramming.html">&nbsp;&nbsp;&nbsp;2.2. Processes and Multiprogramming</a>
<a class="dropdown-item" href="KernelMechanics.html">&nbsp;&nbsp;&nbsp;2.3. Kernel Mechanics</a>
<a class="dropdown-item" href="Syscall.html">&nbsp;&nbsp;&nbsp;2.4. System Call Interface</a>
<a class="dropdown-item" href="ProcessCycle.html">&nbsp;&nbsp;&nbsp;2.5. Process Life Cycle</a>
<a class="dropdown-item" href="UnixFile.html">&nbsp;&nbsp;&nbsp;2.6. The UNIX File Abstraction</a>
<a class="dropdown-item" href="EventsSignals.html">&nbsp;&nbsp;&nbsp;2.7. Events and Signals</a>
<a class="dropdown-item" href="Extended2Processes.html">&nbsp;&nbsp;&nbsp;2.8. Extended Example: Listing Files with Processes</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 3</b></a>
<a class="dropdown-item" href="IPCOverview.html">&nbsp;&nbsp;&nbsp;3.1. Concurrency with IPC</a>
<a class="dropdown-item" href="IPCModels.html">&nbsp;&nbsp;&nbsp;3.2. IPC Models</a>
<a class="dropdown-item" href="Pipes.html">&nbsp;&nbsp;&nbsp;3.3. Pipes and FIFOs</a>
<a class="dropdown-item" href="MMap.html">&nbsp;&nbsp;&nbsp;3.4. Shared Memory With Memory-mapped Files</a>
<a class="dropdown-item" href="POSIXvSysV.html">&nbsp;&nbsp;&nbsp;3.5. POSIX vs. System V IPC</a>
<a class="dropdown-item" href="MQueues.html">&nbsp;&nbsp;&nbsp;3.6. Message Passing With Message Queues</a>
<a class="dropdown-item" href="ShMem.html">&nbsp;&nbsp;&nbsp;3.7. Shared Memory</a>
<a class="dropdown-item" href="IPCSems.html">&nbsp;&nbsp;&nbsp;3.8. Semaphores</a>
<a class="dropdown-item" href="Extended3Bash.html">&nbsp;&nbsp;&nbsp;3.9. Extended Example: Bash-lite: A Simple Command-line Shell</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 4</b></a>
<a class="dropdown-item" href="SocketsOverview.html">&nbsp;&nbsp;&nbsp;4.1. Networked Concurrency</a>
<a class="dropdown-item" href="FiveLayer.html">&nbsp;&nbsp;&nbsp;4.2. The TCP/IP Internet Model</a>
<a class="dropdown-item" href="NetApps.html">&nbsp;&nbsp;&nbsp;4.3. Network Applications and Protocols</a>
<a class="dropdown-item" href="Sockets.html">&nbsp;&nbsp;&nbsp;4.4. The Socket Interface</a>
<a class="dropdown-item" href="TCPSockets.html">&nbsp;&nbsp;&nbsp;4.5. TCP Socket Programming: HTTP</a>
<a class="dropdown-item" href="UDPSockets.html">&nbsp;&nbsp;&nbsp;4.6. UDP Socket Programming: DNS</a>
<a class="dropdown-item" href="AppBroadcast.html">&nbsp;&nbsp;&nbsp;4.7. Application-Layer Broadcasting: DHCP</a>
<a class="dropdown-item" href="Extended4CGI.html">&nbsp;&nbsp;&nbsp;4.8. Extended Example: CGI Web Server</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 5</b></a>
<a class="dropdown-item" href="InternetOverview.html">&nbsp;&nbsp;&nbsp;5.1. The Internet and Connectivity</a>
<a class="dropdown-item" href="AppLayer.html">&nbsp;&nbsp;&nbsp;5.2. Application Layer: Overlay Networks</a>
<a class="dropdown-item" href="TransLayer.html">&nbsp;&nbsp;&nbsp;5.3. Transport Layer</a>
<a class="dropdown-item" href="NetSec.html">&nbsp;&nbsp;&nbsp;5.4. Network Security Fundamentals</a>
<a class="dropdown-item" href="NetLayer.html">&nbsp;&nbsp;&nbsp;5.5. Network Layer: IP</a>
<a class="dropdown-item" href="LinkLayer.html">&nbsp;&nbsp;&nbsp;5.6. Link Layer</a>
<a class="dropdown-item" href="Wireless.html">&nbsp;&nbsp;&nbsp;5.7. Wireless Connectivity: Wi-Fi, Bluetooth, and Zigbee</a>
<a class="dropdown-item" href="Extended5DNS.html">&nbsp;&nbsp;&nbsp;5.8. Extended Example: DNS client</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 6</b></a>
<a class="dropdown-item" href="ThreadsOverview.html">&nbsp;&nbsp;&nbsp;6.1. Concurrency with Multithreading</a>
<a class="dropdown-item" href="ProcVThreads.html">&nbsp;&nbsp;&nbsp;6.2. Processes vs. Threads</a>
<a class="dropdown-item" href="RaceConditions.html">&nbsp;&nbsp;&nbsp;6.3. Race Conditions and Critical Sections</a>
<a class="dropdown-item" href="POSIXThreads.html">&nbsp;&nbsp;&nbsp;6.4. POSIX Thread Library</a>
<a class="dropdown-item" href="ThreadArgs.html">&nbsp;&nbsp;&nbsp;6.5. Thread Arguments and Return Values</a>
<a class="dropdown-item" href="ImplicitThreads.html">&nbsp;&nbsp;&nbsp;6.6. Implicit Threading and Language-based Threads</a>
<a class="dropdown-item" href="Extended6Input.html">&nbsp;&nbsp;&nbsp;6.7. Extended Example: Keyboard Input Listener</a>
<a class="dropdown-item" href="Extended6Primes.html">&nbsp;&nbsp;&nbsp;6.8. Extended Example: Concurrent Prime Number Search</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 7</b></a>
<a class="dropdown-item" href="SynchOverview.html">&nbsp;&nbsp;&nbsp;7.1. Synchronization Primitives</a>
<a class="dropdown-item" href="CritSect.html">&nbsp;&nbsp;&nbsp;7.2. Critical Sections and Peterson's Solution</a>
<a class="dropdown-item" href="Locks.html">&nbsp;&nbsp;&nbsp;7.3. Locks</a>
<a class="dropdown-item" href="Semaphores.html">&nbsp;&nbsp;&nbsp;7.4. Semaphores</a>
<a class="dropdown-item" href="Barriers.html">&nbsp;&nbsp;&nbsp;7.5. Barriers</a>
<a class="dropdown-item" href="Condvars.html">&nbsp;&nbsp;&nbsp;7.6. Condition Variables</a>
<a class="dropdown-item" href="Deadlock.html">&nbsp;&nbsp;&nbsp;7.7. Deadlock</a>
<a class="dropdown-item" href="Extended7Events.html">&nbsp;&nbsp;&nbsp;7.8. Extended Example: Event Log File</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 8</b></a>
<a class="dropdown-item" href="SynchProblemsOverview.html">&nbsp;&nbsp;&nbsp;8.1. Synchronization Patterns and Problems</a>
<a class="dropdown-item" href="SynchDesign.html">&nbsp;&nbsp;&nbsp;8.2. Basic Synchronization Design Patterns</a>
<a class="dropdown-item" href="ProdCons.html">&nbsp;&nbsp;&nbsp;8.3. Producer-Consumer Problem</a>
<a class="dropdown-item" href="ReadWrite.html">&nbsp;&nbsp;&nbsp;8.4. Readers-Writers Problem</a>
<a class="dropdown-item" href="DiningPhil.html">&nbsp;&nbsp;&nbsp;8.5. Dining Philosophers Problem and Deadlock</a>
<a class="dropdown-item" href="CigSmokers.html">&nbsp;&nbsp;&nbsp;8.6. Cigarette Smokers Problem and the Limits of Semaphores and Locks</a>
<a class="dropdown-item" href="Extended8ModExp.html">&nbsp;&nbsp;&nbsp;8.7. Extended Example: Parallel Modular Exponentiation</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Chapter 9</b></a>
<a class="dropdown-item" href="ParallelDistributedOverview.html">&nbsp;&nbsp;&nbsp;9.1. Parallel and Distributed Systems</a>
<a class="dropdown-item" href="ParVConc.html">&nbsp;&nbsp;&nbsp;9.2. Parallelism vs. Concurrency</a>
<a class="dropdown-item" href="ParallelDesign.html">&nbsp;&nbsp;&nbsp;9.3. Parallel Design Patterns</a>
<a class="dropdown-item" href="Scaling.html">&nbsp;&nbsp;&nbsp;9.4. Limits of Parallelism and Scaling</a>
<a class="dropdown-item" href="DistTiming.html">&nbsp;&nbsp;&nbsp;9.5. Timing in Distributed Environments</a>
<a class="dropdown-item" href="DistDataStorage.html">&nbsp;&nbsp;&nbsp;9.6. Reliable Data Storage and Location</a>
<a class="dropdown-item" href="DistConsensus.html">&nbsp;&nbsp;&nbsp;9.7. Consensus in Distributed Systems</a>
<a class="dropdown-item" href="Extended9Blockchain.html">&nbsp;&nbsp;&nbsp;9.8. Extended Example: Blockchain Proof-of-Work</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item disabled"><b>Appendix A</b></a>
<a class="dropdown-item" href="CLangOverview.html">&nbsp;&nbsp;&nbsp;A.1. C Language Reintroduction</a>
<a class="dropdown-item" href="Debugging.html">&nbsp;&nbsp;&nbsp;A.2. Documentation and Debugging</a>
<a class="dropdown-item" href="BasicTypes.html">&nbsp;&nbsp;&nbsp;A.3. Basic Types and Pointers</a>
<a class="dropdown-item" href="Arrays.html">&nbsp;&nbsp;&nbsp;A.4. Arrays, Structs, Enums, and Type Definitions</a>
<a class="dropdown-item" href="Functions.html">&nbsp;&nbsp;&nbsp;A.5. Functions and Scope</a>
<a class="dropdown-item" href="Pointers.html">&nbsp;&nbsp;&nbsp;A.6. Pointers and Dynamic Allocation</a>
<a class="dropdown-item" href="Strings.html">&nbsp;&nbsp;&nbsp;A.7. Strings</a>
<a class="dropdown-item" href="FunctionPointers.html">&nbsp;&nbsp;&nbsp;A.8. Function Pointers</a>
<a class="dropdown-item" href="Files.html">&nbsp;&nbsp;&nbsp;A.9. Files</a>
</div>
</li>
</ul>
</div>
<ul class="navbar-nav flex-row ml-md-auto d-none d-md-flex">
<li class="nav-item"><a class="nav-link jmu-gold" href="https://w3.cs.jmu.edu/kirkpams/OpenCSF/Books/csf/source/Wireless.rst"
target="_blank" rel="nofollow">Show Source</a></li>
</ul>
</nav>
<div class="container center">
«&#160;&#160;<a id="prevmod" href="LinkLayer.html">5.6. Link Layer</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a id="nextmod" href="Extended5DNS.html">5.8. Extended Example: DNS Client</a>&#160;&#160;»
</div>
<br />
<script type="text/javascript" src="_static/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="_static/js/jquery-1.11.4-ui.min.js"></script>
<script type="text/javascript" src="_static/js/forge-0.7.0.min.js"></script>
<script type="text/javascript" src="../../../JSAV/lib/jquery.transit.js"></script>
<script type="text/javascript" src="../../../JSAV/lib/raphael.js"></script>
<script type="text/javascript" src="../../../JSAV/build/JSAV-min.js"></script>
<script type="text/javascript" src="_static/js/config.js"></script>
<script type="text/javascript" src="../../../lib/odsaUtils-min.js"></script>
<script type="text/javascript" src="../../../lib/odsaMOD-min.js"></script>
<script type="text/javascript" src="_static/js/d3-4.13.0.min.js"></script>
<script type="text/javascript" src="_static/js/d3-selection-multi.v1.min.js"></script>
<script type="text/javascript" src="../../../lib/dataStructures.js"></script>
<div class="container">
<script>ODSA.SETTINGS.DISP_MOD_COMP = true;ODSA.SETTINGS.MODULE_NAME = "Wireless";ODSA.SETTINGS.MODULE_LONG_NAME = "Wireless Connectivity: Wi-Fi, Bluetooth, and Zigbee";ODSA.SETTINGS.MODULE_CHAPTER = "The Internet and Connectivity"; ODSA.SETTINGS.BUILD_DATE = "2021-06-01 15:31:50"; ODSA.SETTINGS.BUILD_CMAP = false;JSAV_OPTIONS['lang']='en';JSAV_EXERCISE_OPTIONS['code']='java';</script><div class="section" id="wireless-connectivity-wi-fi-bluetooth-and-zigbee">
<h1>5.7. Wireless Connectivity: Wi-Fi, Bluetooth, and Zigbee<a class="headerlink" href="Wireless.html#wireless-connectivity-wi-fi-bluetooth-and-zigbee" title="Permalink to this headline"></a></h1>
<p>We close our survey of network technologies with a brief overview of three forms of wireless
connectivity that facilitate three very different capabilities. <a class="reference internal" href="Glossary.html#term-wi-fi"><span class="xref std std-term">Wi-Fi</span></a> is the common name for
the set of wireless technologies defined by the <a class="reference internal" href="Glossary.html#term-ieee-802-11"><span class="xref std std-term">IEEE 802.11</span></a> working groups and supported by
the <a class="reference internal" href="Glossary.html#term-wi-fi-alliance"><span class="xref std std-term">Wi-Fi Alliance</span></a>. <em>Bluetooth</em> is a set of standards defined by the <a class="reference internal" href="Glossary.html#term-bluetooth-special-interest-group"><span class="xref std std-term">Bluetooth SIG</span></a>. <a class="reference internal" href="Glossary.html#term-zigbee"><span class="xref std std-term">Zigbee</span></a> is a suite of protocols maintained by the
<a class="reference internal" href="Glossary.html#term-zigbee-alliance"><span class="xref std std-term">Zigbee Alliance</span></a>, intended to create short-range networks using radio communication defined
by the <a class="reference internal" href="Glossary.html#term-ieee-802-15-4"><span class="xref std std-term">IEEE 802.15.4</span></a> working group.</p>
<div class="section" id="wireless-protocol-stacks-and-uses">
<h2>5.7.1. Wireless Protocol Stacks and Uses<a class="headerlink" href="Wireless.html#wireless-protocol-stacks-and-uses" title="Permalink to this headline"></a></h2>
<p>Wi-Fi is designed to act as a substitute for the wired connections that make up the traditional link
and physical layers. That is, Wi-Fi assumes that the goal is to use a wireless connection to
facilitate Internet access for a mobile device. As such, devices like laptops and tablets use the
802.11 technology standards to communicate with an <a class="reference internal" href="Glossary.html#term-access-point"><span class="xref std std-term">access point</span></a> that is connected to an ISP.
Readers may be familiar with the different standards, such as 802.11a, 802.11g, and 802.11n. These
standards offer different levels of performance by specifying different features of the radio that
is used. For instance, 802.11n wireless routers can have more than one antenna to support
<a class="reference internal" href="Glossary.html#term-multiple-input-and-multiple-output"><span class="xref std std-term">multiple input and multiple output</span></a> (MIMO) access; with MIMO, the router can be sending and
receiving communications with several devices all at one, increasing the efficiency of the overall
system. Early standards did not assume MIMO-compatible radios, so the maximum speed and throughput
were significantly lower.</p>
<p>In contrast, Bluetooth was not designed to connect a device to the Internet. Instead, Bluetooth
devices focus on short-range <a class="reference internal" href="Glossary.html#term-mobile-ad-hoc-network"><span class="xref std std-term">mobile ad hoc networks (MANETs)</span></a>. In a MANET, unknown devices
establish connections with efficient, minimal overhead and configuration; the goal is to allow a new
device to join the network rapidly, exchange some data, then disconnect. In the simplest case,
Bluetooth speakers or headphones may be used to play the sound that would otherwise be produced by a
computers speakers; similarly, a Bluetooth keyboard or mouse reduce the number of cables that must
physically connect a computer and its peripheral devices. Bluetooth devices are generally assumed to
have low-power requirements, so the range of the connection can be as short as 1 to 10 meters.</p>
<div class="figure mb-2 align-right" id="id1" style="width: 35%">
<span id="wirelessbluetooth"></span><a class="reference internal image-reference" href="_images/CSF-Images.5.13.png"><img class="p-3 mb-2 align-center border border-dark rounded-lg" alt="The Bluetooth protocol stack does not assume Internet access" src="_images/CSF-Images.5.13.png" style="width: 95%;" /></a>
<p class="caption align-center px-3"><span class="caption-text"> Figure 5.7.1: The Bluetooth protocol stack does not assume Internet access</span></p>
</div>
<p>Since Bluetooth is not intended to provide Internet access, its protocol stack is very different
than the 5-layer model we have examined previously. <a href="Wireless.html#wirelessbluetooth">Figure 5.7.1</a> shows
the main structure of the Bluetooth protocol stack. At the lowest layer, the baseband and
the link manager/link controller (LM/LC) layers provide the basic point-to-point modulation
of the radio signal. The logical link control and adaptation protocol (L2CAP) acts in a
manner similar to the traditional link layer by multiplexing access to the radio for higher-layer
protocols. Given Bluetooths usage model is for point-to-point communication, its protocol stack
does not offer an equivalent of the Internet layer.</p>
<p>Bluetooth defines a number of protocols that are analogous to a transport layer. The RFCOMM
protocol provides a generic serial port interface, similar to a TCP stream socket.
Multichannel adaptation protocol (MCAP) defines a common transport layer for medical
devices. Lastly, the generic access profile (GAP) creates an extendible interface that can
be used for future applications that are not defined in the specification.</p>
<p><a class="reference internal" href="Glossary.html#term-bluetooth-profile"><span class="xref std std-term">Bluetooth profiles</span></a> serve as the equivalent of the application layer. The
hands-free protocol (HFP) defines the interface for connecting a cell-phone to a wireless
peripheral, such as a headset or an automobile. HFP and object exchange (OBEX)—a generic profile for
exchanging binary data—run on top of the RFCOMM protocol. The health device protocol (HDP) provides
a common interface for healthcare devices, such as thermometers or heart meters, running on the MCAP
protocol. Some profiles, such as human interface device (HID) and audio/video distribution transport
protocol (AVDTP), run directly on top of L2CAP to minimize their latency to support real-time human
interactions. HID is used for wireless devices such as a mouse and keyboard, whereas AVDTP is used
for devices like headphones. More recently, the advanced audio distribution profile (A2DP) has been
added on top of AVDTP to provide improved service for audio-visual devices.</p>
<p>The Bluetooth SIG was established with a core set of applications in mind. The designers also had a
stated design goal to use existing radios, rather than designing new technology from scratch. These
design goals allowed the Bluetooth SIG to get devices on the market for consumer use very rapidly.
By working within the constraints of the top and bottom layers (the applications and the existing
radios), the designers were able to construct a working protocol stack in a short period of time.</p>
<p>The Zigbee wireless standard lies somewhere in between the goals of Wi-Fi and Bluetooth. Like
Bluetooth, Zigbee is used for MANETs, but on a larger and more complex scale. To be specific,
Bluetooth is generally based on a <a class="reference internal" href="Glossary.html#term-star-topology"><span class="xref std std-term">star topology</span></a>, with multiple peripherals (keyboard, mouse,
speakers) connecting to a central device (laptop); no one expects their keyboard and mouse to be
exchanging data packets. In contrast, Zigbee provides support for <a class="reference internal" href="Glossary.html#term-wireless-mesh-network"><span class="xref std std-term">wireless mesh networks</span></a>, in
which devices provide support for routing packets if two hosts are too far apart to communicate
directly. Note that the Internet backbone can be described as a wired mesh network, allowing
multiple routing paths; Zigbee takes this idea and replaces the wired connections with wireless
ones. Zigbee uses this structure to support applications like low-powered sensor networks. Zigbee is
one of the protocols used to support the <a class="reference internal" href="Glossary.html#term-internet-of-things"><span class="xref std std-term">Internet of Things</span></a> (IoT). IoT is the general
concept of connecting non-traditional computing devices, such as home appliances, thermostats, or
entertainment devices, to each other and to the Internet as a whole.</p>
<div class="figure mb-2 align-right" id="id2" style="width: 40%">
<span id="wirelesszigbee"></span><a class="reference internal image-reference" href="_images/CSF-Images.5.14.png"><img class="p-3 mb-2 align-center border border-dark rounded-lg" alt="The Zigbee protocol stack supports custom short-range networks" src="_images/CSF-Images.5.14.png" style="width: 95%;" /></a>
<p class="caption align-center px-3"><span class="caption-text"> Figure 5.7.2: The Zigbee protocol stack supports custom short-range networks</span></p>
</div>
<p><a href="Wireless.html#wirelesszigbee">Figure 5.7.2</a> shows the structure of the Zigbee protocol stack. The lowest
layers, MAC and PHY, are defined by the 802.15.4 working group, independent of Zigbee itself. These
layers define a generic point-to-point communication that can be used with low-power radios. Zigbee
refers specifically to the layers built on top of this this foundation. The NWK layer coordinates
the mesh routing that builds the network. The APS and Zigbee Device Object (ZDO) Management provide
common services that applications can use, such as cryptographic key management and information
about devices on the network. Applications can access ZDOs through an interface at the application
layer, or they can request services through application end points.</p>
<p>These three protocol stacks serve illustrate how wireless connectivity can be used to provide very
different services. Wi-Fi is designed to extend the traditional Internet model to mobile devices,
replacing the last link of the network with a wireless access point. Bluetooth defines a local
point-to-point mechanism that allows computer peripherals to communicate without a cable physically
connecting the devices. Zigbee creates a wireless mesh network that can be used to route data, such
as sensor readings, between low-powered devices. Zigbee devices can also have additional components
added that allow them to link to an Internet access point, connecting the sensor network and the
Internet. These separate infrastructures provide support for application designers to build services
that can communicate without physical connections.</p>
<div
id="InterWirelessSumm"
class="embedContainer"
data-exer-name="InterWirelessSumm"
data-long-name="Wireless connectivity questions"
data-short-name="InterWirelessSumm"
data-frame-src="../../../Exercises/Internet/InterWirelessSumm.html?selfLoggingEnabled=false&amp;localMode=true&amp;module=Wireless"
data-frame-width="950"
data-frame-height="775"
data-external="false"
data-points="0"
data-required="False"
data-showhide="show"
data-threshold="3"
data-type="ka"
data-exer-id="">
<div class="center">
<div id="InterWirelessSumm_iframe"></div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="mt-4 container center">
«&#160;&#160;<a id="prevmod1" href="LinkLayer.html">5.6. Link Layer</a>
&#160;&#160;::&#160;&#160;
<a class="uplink" href="index.html">Contents</a>
&#160;&#160;::&#160;&#160;
<a id="nextmod1" href="Extended5DNS.html">5.8. Extended Example: DNS Client</a>&#160;&#160;»
</div>
</div>
<br />
<div class="row jmu-dark-purple-bg">
<div class="col-md-12">
<center>
<a id="contact_us" class="btn button-link-no-blue jmu-gold" rel="nofollow" href="mailto:webmaster@opencsf.org" role="button">Contact Us</a>
<a id="license" class="btn button-link-no-blue jmu-gold" rel="nofollow" href="https://w3.cs.jmu.edu/kirkpams/OpenCSF/lib/license.html" target="_blank">License</a>
</center>
</div>
</div>
<script src="_static/js/popper.js-1.14.7-min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="_static/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>