The attribute protocol allows a device referred to as the server to expose a set
of attributes and their associated values to a peer device referred to as the
client. These attributes exposed by the server can be discovered, read, and
written by a client, and can be indicated and notified by the server