본문으로 바로가기

[Bluetooth] [wireshark] [Service] btsnoop_hci.log 해석[1]

category 카테고리 없음 2023. 10. 12. 17:02

: 특정 장비 연결시 서비스 && 특성 읽는부분에 대한  패킷을 분석해 봤습니다.

 

   ▶ 호스트에서 Read By Group Type Request (0x10) 를 이용해 Primary Service(0x2800) 를 요청합니다.

       :  Read By Group Request 포맷은 <기타> 항목에 있습니다.          

     

 

 ▶   Read By Group Type Response(0x11) 응답이 호스트로 들어옵니다.

    :  위에서 핸들을 ( 0x0001 ~ 0xffff) 로 주었으므로 0x1 부터 응답을 합니다.

            : 마지막 Group End Handle 에 0x001a 가 들어 왔네요.

               Attribute Data 포맷은  <기타> 항목을 참고하세요.

 

 ▶  호스트에서  Read By Group Type Request (0x10)를 다시 호출합니다.

       : starting handle 에는  위에서 나온 Group End Handle 의 다음 값을 넣어줍니다.

 

  Read By Group Type Response(0x11) 이 다시 들어오고

       :  unKnown UUID (0xffb0)가 들어오고 Group End Handle에 (0x0039) 가 들어 왔네요.

 

 

 ▶  호스트에서  Read By Group Type Request (0x10)를 다시 호출합니다.

       : starting handle  ==> 0x003a

 

  Read By Group Type Response(0x11) 이 들어 옵니다.

                       :  Length :20  이므로  ==>  handle(2) + Group End handle (2) + UUID(16)

 

 

 ▶  호스트에서  Read By Group Type Request (0x10)를 다시 호출합니다.

       : starting handle  ==> 0x0045

 

 

   Read By Group Type Response(0x11)  응답

        : Group End Handle(0xffff) 이므로 마지막입니다.

 

  호스트에서 Read By Type Request (0x08)를  요청

   :  핸들 범위가 (0x01 ~ 0x0b) 로 되어 있고 , UUID (0x2803) . 

       Generic Access Profile 안의 특성(characteristic) 읽기

 

  Read By Type Response (0x09) 가 들어옵니다.

          : Attribute Data 포맷은 <기타>  항목 참조

           마지막 Characteristic Value Handle(0x0007) 이므로 뒤에 데이타가 더 있음.

 

 

  Read By Type Request  (0x98) 요청

   : Starting Handle 에 0x0007 넣기

 

  Read By Type Response (0x09) 가 들어옴.

   : 마지막 Characteristic Value Handle 이 0x000b 이므로 General Access Profile 은 끝

 

  Read By Type Request  요청

    : Starting Handle, Ending Handle 에 마지막 0x000b 넣고 전송

 

 

  Error Response (0x01) 발생

             : 0x08 request 에 대한 에러이고 Attribute Not Found 가 들어오네요. 

  

   서비스 별로  계속 Read By Type request/response가  나오나 해석방법은 위 내용과 비슷합니다.

 

<기타>

▶ nRF Connect 앱에 보여지는  서비스 && 특성

 

 

 

 

 ▶ Bluetooth Core_v5.3.pdf  참조 내용

   → Read By Type Request (0x08) 포맷

 

   → Read By Type Response (0x09) 포맷

 

   →   Read By Group Type Request(0x10) 포맷

 

   →   Read By Group Type Response(0x11) 포맷

   →   Attribute Group Type / Attribute Type 에 들어가는 UUID 리스트

   →  Attribute Data  포맷

 

  

 

그럼 오늘도 수고하세요.

 

#wireshark #bluetooth #btsnoop_hci #ATT_READ_BY_GROUP_TYPE_REQ

#ATT_READ_BY_GROUP_TYPE_RSP #ATT_READ_BY_TYPE_REQ #ATT_READ_BY_TYPE_RSP

반응형