implements, while the ProtocolDescriptorList describes the Bluetooth protocol stack to
be used to access the service, and the needed parameter configuration.
Any Bluetooth device carrying services also runs an SDP server to make those
services available to other hosts. The SDP server maintains the records for the services
existing on the device identifying each record with a unique handle, and it interacts with
the SDP clients residing on devices willing to access remote services. A client looks
for a service by specifying a service search pattern that is the list of UUIDs that must
characterize the service. A service record matches the search pattern if it contains all the
UUIDs listed in the pattern. A client may as well browse through the services available
on a given device. The services belong to groups, each one of which is identified by a
UUID that is recorded in the service records: the groups are arranged in a hierarchical
structure. A client can discover all the services belonging to a group by using the group
UUID as the search pattern.
SDP adopts a request/response communication scheme; three kinds of requests can
be generated by a SDP client:
ServiceSearchRequest: it is used to locate services whose records match the search
pattern;
ServiceAttributeRequest: it is used to retrieve attribute values from a specific record,
characterized via its handle;
ServiceSearchAttributeRequest: it combines the functionalities of the two requests
above, that is, it allows to retrieve attribute values concerning the services satisfying
the search pattern.
Requests are sent to a specific Bluetooth device, by having the SDP client that estab-
lishes a L2CAP connection with the SDP server. A SDP client could browse through
the services available in its communication range only by performing the inquiry pro-
cedure to discover the BDs in range, and then by repeating the above step for each one
of them separately.
3 Bluetooth Service Discovery and Access (BSDA)
BSDA (Bluetooth Service Discovery and Access) allows a BD to make its own services
available to other BDs, and to search for services provided by other BDs, independently
of their geographical location. In particular, the involved BDs may belong to different
piconets, connected through a wired network. BSDA is based on SDP. With BSDA a BD
is able to both browse through the services offered by a specific BD, and characterize all
the BDs providing a given service. Moreover, a BD is able to retrieve the service record
describing a particular service, and as a consequence to actually exploit the service.
In Fig. 1, we show the system we consider. BDs are connected in piconets. The role
of master is assigned to a device equipped with a wired network interface, thus also act-
ing as Access Point (AP) to the fixed network infrastructure. SDP is exploited by BDs
inside piconets to find the AP and to exchange information about the available services.
The service discovery functionalities are mainly in charge to the Home Agents (HAs).
A Home Agent is a fixed host in Internet that works as a central repository for informa-
tion about the services offered by BDs and is queried to discover which services a BD
172