참고자료: https://www.bluetooth.com/specifications/specs/core-specification-5-3/
* 블루투스 전체 LE 패킷 포맷은 "Bluetooth LE Packet Format" 참고
Data Physical Channel PDU
1. Header
1-1. LLID field
- LL Data PDU인지, 아니면 LL Control PDU인지를 구분
LLID | 설명 |
0b00 | RFU |
0b01 | LL Data PDU 종류 - L2CAP message의 Continuation fragment - Empty PDU Empty PDU 특징 - 패킷 헤더의 Length field가 0 - Central에서 Empty PDU를 전송하면, Peripheral에서 Empty PDU를 포함한 Data Physical Channel PDU로 응답한다 |
0b10 | LL Data PDU 종류 - Start L2CAP message - Fragment가 없는 complete L2CAP message 패킷 헤더의 Length field는 0일 수 없다 |
0b11 | LL Control PDU |
1-2. NESN field
- Next Expected Sequence Number
- 수신 디바이스에서 수신한 패킷에 대한 ACK/NAK을 싣는데 사용된다
1-3. SN field
- 송신 디바이스에서 패킷 전송 시, 새로운 패킷인지 아니면 재전송 패킷인지에 대한 정보를 싣는데 사용된다
1-4. MD field
- Device에서 전송할 데이터가 있다는 것을 알리기 위해 사용된다
1-5. CP field
- CTEInfo Present
- CTEInfo field의 존재 여부를 알려주며, 이것은 곧 Constant Tone Extension이 있는지 알려준다
- 상대 디바이스에서 Constant Tone Extension을 지원하지 않으면, 전송할 수 없다
- CTEInfo field를 포함한 PDU를 전송할 수 있다고, CTEInfo field를 포함한 PDU를 수신할 수 있는 것은 아니며, 반대의 경우도 마찬가지이다 (CTEInfo field를 포함한 PDU의 전송과 수신은 서로 독립적이다)
1-6. RFU
- Reserved for Future Use
1-7. Length field
- Payload와 MIC의 octet 단위 길이
1-8. CTEInfo field
- Constant Tone Extension의 type과 length
2. Payload
2-1. LL Data PDU Payload
- L2CAP data를 전송할 때 사용한다
- LLID는 0b01과 0b10 두 가지를 사용한다 (자세한 내용은, 위의 "1-1. LLID field" 참고)
2-2. LL Control PDU Payload
- Link Layer connection을 control 할 때 사용한다
- LLID는 0b11를 사용한다 (자세한 내용은, 위의 "1-1. LLID field" 참고)
- 자세한 내용은, "LL Control PDU Payload" 참고
3. MIC
ACL connection encrypted | Payload 존재 여부 | |
MIC field가 존재하는 경우 | Encrypted | 있음 |
MIC field가 존재하지 않는 경우 | Encrypted | 없음 |
Un-encrypted | 있든 없든 상관없음 |
'블루투스 > LE Link Layer' 카테고리의 다른 글
LE MD(More Data) field (0) | 2023.02.07 |
---|---|
LE - Acknowledgment / Flow control (0) | 2023.02.05 |
Initiating PDU Payload (0) | 2023.02.04 |
Scanning PDU Payload (0) | 2023.02.04 |
Common Extended Advertising Payload - SyncInfo field (0) | 2023.02.01 |