직비 프로토콜(Zigbee Protocol) 상세분석
- MAC Layer 편(2) -
이전글에 이은, 지그비 프로토콜의 MAC Layer에대한 상세분석 2편입니다.
2020/10/17 - [IT이슈 및 정보] - 지그비 프로토콜(Zigbee Protocol) 상세분석 - MAC Layer 편(1)
이전 글에서는 MHR(MAC header)의 프레임제어필드 중 비컨 프레임까지 알아보았습니다.
이번 글에서는 데이터프레임, ACK(Acknowledgment)프레임, MAC 명령프레임까지 이어서 알아보고, MAC페이로드와 MFR(MAC footer)까지 알아보도록 하겠습니다.
1. 데이터프레임
(1-1) MHR 필드
1) 프레임 제어 필드(Frame control field)
- frame type : 데이터 프레임을 지시하는 값이 포함된다.
- security enabled : 데이터에 대한 protection을 사용한다면 1로 설정된다.
- frame version : security enabled 필드가 1로 설정되거나, MAC Payload 필드가 aMaxMACSafePayloadSize(MAC 페이로드 필드에서 전송 할 수 있는 최대 개수) 보다 크다면 1로 설정된다.
2) Sequence number 필드
: 현재 macDSN(mac data sequence number)의 값이 포함된다.
3) Addressing 필드
: 프레임 제어 필드의 설정에 따라서 destination address필드들과 source address 필드로 구성된다.
4) Auxiliary Security header 필드
: 데이터 프레임의 security 처리에서 필요로 하는 정보가 포함된다.
(1-2) MAC Payload 필드
1) Data payload
: 상위계층에서 MAC 부계층에게 전달을 요구한 정보가 포함된다.
2. ACK(Acknowledgment) 프레임
(2-1) MHR 필드
1) 프레임 제어 필드(Frame control field)
- frame type : ACK 프레임을 지시하는 값이 포함된다.
- frame pending : ACK 프레임을 전송하기 전에 수신측의 데이터를 보유하고 있으면 1로 세팅된다.
다른 모든 필드들은 0으로 세팅되고 수신측에서는 이를 무시한다.
2) Sequence number : ACK를 전송할 수신된 프레임의 sequence number 값이 포함된다.
3. MAC 명령프레임
(3-1) MHR 필드
1) 프레임 제어 필드(Frame control field)
- frame type : MAC 명령 프레임에서 지시하고 있는 값이 포함된다.
- security enabled : 프레임이 security 처리가 되었다면 1로 설정된다.
다른 모든 필드들은 목적에 따라 설정되며 예약된 필드들은 0으로 세팅되며 수신측에서는 이를 무시한다.
2) Sequence number 필드
: 현재 macDSN(mac data sequence number)의 값이 포함된다.
3) addressing 필드
: 프레임 제어 필드의 설정에 따라 destination address 필드와, source address 필드들로 구성된다.
주소필드는 0~20바이트의 가변 길이로 유연성을 가지고 있다.
주소지정방법에 따라 코디네이터로부터 16비트 주소를 할당 받아 사용하거나, 노드에 부여된 고정된 64비트 주소를 사용할 수 있다.
- Destination PAN identifier 필드
: 프레임을 수신하는 디바이스의 고유 PAN ID를 규정한다.
- Destination address 필드
: 프레임이 전달될 수신측의 주소를 규정한다.
- Source PAN identifier 필드
: 프레임 생성자의 고유 PAN ID를 규정한다.
- Source address 필드
: 프레임 생성자의 주소를 규정한다.
4) Auxiliary security header
: MAC명령프레임의 security 처리에서 요구하는 정보가 포함된다. 프레임을 실제로 보호하는 방법이나 MAC security PIB에서 사용한 키가 무엇인지와 같은 security 처리에 필요한 정보를 규정한다.
(3-2) MAC Payload 필드
1) command frame identifier 필드
: 사용중인 MAC 명령을 식별한다.
MAC 명령 프레임의 종류
orphan notification : 코디네이터와 동기화가 되지 않은 기기들에게 전송.
2) command payload 필드
: MAC 명령이 포함된다.
MAC계층에는 상위 계층인 네트워크(NWK)계층을 위한 데이터서비스인 MCPS - SAP(MAC Common Part Sublayer - Service Access Point)를 통하여 전달되며 MAC프레임 중 비컨 프레임과 데이터 프레임만이 MCPS - SAP를 통하여 전달된다.
네트워크(NWK)계층에서 관리메시지는 MLME-SAP(MAC Layer Management Entity-Service Access Point)를 통하여 관리하며 네트워크(NWK)계층과 연관하여 MAC PIB를 설정하고 네트워크(NWK)계층에서 필요한 MAC동작을 관리한다.
확인 프레임과 MAC명령프레임은 PD-SAP를 통하여 동일 계층의 다른 노드의 MAC과 상호작용을 통하여 MAC프레임을 관리한다. 즉, MAC 프레임 중 데이터프레임과 비컨프레임만 상위계층에 전달되고, 확인프레임과 MAC명령프레임은 MAC 계층 간의 제어를 위해 사용된다.
- Security enabled
: 네트워크가 보안기능을 사용 할 것인지를 알리는 필드. 사용하면 1, 하지 않으면 0으로 세팅된다.
- Frame pending
: 프레임을 전송하는 디바이스가 수신측보다 더 많은 데이터를 가지고 있으면 1, 그렇지 않으면 0으로 세팅된다.
- ACK request
: ACK를 데이터 또는 MAC명령프레임의 수신측에 있는 수신 디바이스에서 필요로 하는지를 규정한다. 1로 설정되었다면, 수신측 디바이스에서만 ACK프레임을 전송 할 수 있다. 0으로 설정되었다면, 수신측 디바이스에서는 ACK프레임을 전송하지 못한다.
- PAN ID compression
: 송신지, 목적지 주소가 모두 존재할 때, PAN ID필드들 중 오직 하나만 포함해서 전송 할 수 있는지를 규정한다.
1으로 설정 및 송신지, 목적지 주소 존재 : 프레임에 목적지 PAN ID필드만 포함한다.
0으로 설정 및 송신지, 목적지 주소 존재 : 프레임에 송신지, 목적지 PAN ID필드 모두 포함한다.
0으로 설정 및 송신지, 목적지 주소 중 하나만 존재 : 프레임에 해당 PAN ID필드만 포함한다.
0으로 설정 및 송신지, 목적지 주소 존재하지 않음 : 프레임에 아무 필드도 포함되지 않는다.
- Destination Addressing Mode , Source Addressing Mode
00 : PAN코디네이터로 주소를 받지 못해 주소가 없는 경우
01 : 예약 된 값.
10 : IEEE 802.15.4의 16비트 주소를 사용하는 경우
11 : 64비트 주소를 사용하는 경우
- Frame version 필드
프레임에 대응하는 버전번호를 규정한다.
0x00 : IEEE Std 802.15.4-2003 호환 프레임.
0x01 : IEEE P802.15.4REVb/D6 enhanced 프레임.
다른 값들은 향후 사용을 위해 예약되었다.
(3-3) MFR(MAC footer)
FCS(Frame Check Sequence) 필드
: 전송 중 발생하는 에러를 검출하기 위한 필드이다.
'IT > 기술(C,C++,JAVA)' 카테고리의 다른 글
지그비 프로토콜(Zigbee Protocol) 상세분석 - MAC Layer 편(1) (2) | 2020.10.17 |
---|---|
지그비 프로토콜(Zigbee Protocol) 상세분석 - PHY Layer 편 (0) | 2020.10.15 |
c언어로 두 개의 연결리스트를 하나의 정렬된 연결리스트로 합병하는 프로그램 (0) | 2020.09.27 |
c언어로 쉽게 만드는 합집합, 교집합, 차집합 간단 예제(코드포함) (3) | 2020.09.24 |
Shell/Merge Sort(TopDown/BottomUp) 실행시간 비교(코드첨부) (0) | 2020.09.20 |
댓글