본문 바로가기
블루투스/SDP

Bluetooth SDP(Service Discovery Protocol)

by 테크쟁이 2022. 12. 19.
반응형

참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/

 

* Bluetooth 전체 Architecture Layer는 "Bluetooth Architecture Layer" 참고

 

1. SDP(Service Discovery Protocol)란?

- 상대 블루투스 디바이스에서 지원하는 서비스를 알고자 할 때, 사용하는 프로토콜

- 보통 블루투스 연결할 때 사용된다.

 

2. SDP(Service Discovery Protocol) Role

- Client: 지원하는 서비스를 요청하는 쪽

- Sever: 지원하는 서비스를 제공하는 쪽

SDP Server와 SDP Client의 통신

 

3. SDP 구조

- Sevice Record와 Service Attribute로 구성된다.

 

3-1. Sevice Record

- Service Class의 Service Attribute와, 모든 Service의 공통점인 Universal Service Attributes로 구성된다.

Service Record 구조

 

3-2. Service Attribute

- 하나의 Service를 설명

- 각 Service 는 Service Class의 instance(실제 값을 가지고 구현된 것)이다.

- Service Record의 Service Attribute의 포맷과 의미는, Service Record의 Service Class에 따라 다르다.

Service Attribute 구조

 

3-2-1. Service Attribute의 구성

- Attribute ID: 16-bit unsigned integer로 Service Record에 포함된 다른 Service Attribute와 구분할 때 사용된다.

- Attribute Value: Service Attribute의 실제 사용하는 값

- Service Attribute에 대한, 자세한 설명은 "SDP Service Attribute"를 참고

 

3-2-2. Service Attribute 포맷 예시

Service Attribute 설명
ServiceClassIDList Identifies the type of service represented by a service record. 
In other words, the list of classes of which the service is an instance
- UUID 포맷
- Service Class의 ID
- 해당 Service Record에 포함된  Service Attribute들의 의미와 포맷은, 여기서 선언한 Service Class를 기준으로 작성된다.
ServiceID Uniquely identifies a specific instance of a service
- Service Attribute
ProtocolDescriptorList Specifies the protocol stack(s) that may be used to utilize a service
ProviderName The textual name of the individual or organization that provides a service
IconURL Specifies a URL that refers to an icon image that may be used to represent a service
ServiceName A text string containing a human-readable name for the service
ServiceDescription A text string describing the service

 

4. Service Class

- 각 Service Attribute는 Service Class의 instance(실제 값을 가지고 구현된 것)이다.

- Service Class definition은 Service Record에 포함된 모든 Service Attribute의 definition을 제공한다.

- Service SubClass는 Service SuperClass의 Service Attribute를 보유한다.

 

4-1. Service SubClass 예시

- duplex 기능이 있는 color postscript printer의 Service Class

- PrinterServiceClass Service SuperClass가 3개의 SubClass를 가지는 것을 알 수 있다.

DuplexColorPostscriptPrinterServiceClassID
ColorPostscriptPrinterServiceClassID
PostscriptPrinterServiceClassID
PrinterServiceClassID

 

5. SDP Client에서 SDP Server 접근방법

- Service Searching과 Services Browsing이 있다.

 

5-1. Service Searching

- Service Record의 Handle을 사용하여, 해당 Service Record에 포함된 Service Attribute를 탐색하는 방법

 

5-2. Services Browsing

- 아무런 정보 없이, Service Record의 설명을 통하여, Service Attribute를 탐색하는 방법

 

5-2-1. Services Browsing 예시

Service browsing hierarchy

Service Name Service Class Attribute Name Attribute Value
Entertainment BrowseGroupDescriptor BrowseGroupList PublicBrowseRoot
    GroupID  EntertainmentID
News BrowseGroupDescriptor BrowseGroupList PublicBrowseRoot
    GroupID  NewsID
Reference BrowseGroupDescriptor BrowseGroupList PublicBrowseRoot
    GroupID  ReferenceID
Games BrowseGroupDescriptor BrowseGroupList EntertainmentID
    GroupID  GamesID
Movies BrowseGroupDescriptor BrowseGroupList EntertainmentID
    GroupID  MoviesID
Starcraft Video Game Class ID BrowseGroupList GamesID
A Bug’s Life Movie Class ID BrowseGroupList MovieID
Dictionary Z Dictionary Class ID BrowseGroupList ReferenceID
Encyclopedia X Encyclopedia Class ID BrowseGroupList ReferenceID
New York Times Newspaper ID BrowseGroupList NewsID
London Times Newspaper ID BrowseGroupList NewsID
Local Newspaper Newspaper ID BrowseGroupList NewsID
 
반응형

'블루투스 > SDP' 카테고리의 다른 글

AdditionalProtocolDescriptorList 예시  (0) 2022.12.22
SDP Service Attribute  (0) 2022.12.20