로라(LoRa) FOTA가 어려운 이유와 심포니 링크(Symphony Link) 해결법
배터리 구동 노드에 로라완(LoRaWAN)으로 펌웨어 무선 업데이트(FOTA) 하는 건 사실상 불가능에 가깝습니다.
로라 얼라이언스는 멀티캐스트 프레임(클래스 B/C 기기만 사용 가능)이 펌웨어를 실을 수 있다고 하지만, 대부분 배포가 쓰는 클래스 A 기기엔 실질적 한계 해결 안 됩니다. The Things Network, Libelium 등 커뮤니티 포럼도 표준 로라완 FOTA 비현실적임을 확인합니다. 심포니 링크(Symphony Link)는 FOTA 염두에 두고 설계된 독자 로라 프로토콜로 검증된 솔루션 제공.
왜 로라완 FOTA가 어려운가
- 비조정 게이트웨이 전송 – 게이트웨이가 네트워크 청취 없이 펌웨어 세그먼트 브로드캐스트. 노드가 게이트웨이 전송 중임을 감지 못해 그 기간 보낸 패킷 손실.
- 클래스 A 멀티캐스트 불가 – 멀티캐스트는 가로등 제어 같은 기능 지원하려 클래스 B/C에 추가됐지 펌웨어용 아님. 배터리 구동 클래스 A 노드는 멀티캐스트 수신 불가, FOTA 불가능.
- 듀티사이클 제한 – ETSI 규제 지역 게이트웨이 전송 시간 1% 제한. 대역폭 대부분 ACK와 MAC 트래픽이 소진, 멀티캐스트 다운링크 여유 사실상 없음. 미국은 듀티사이클 제한 없지만 헤비 다운링크 시 네트워크 붕괴.
심포니 링크로 펌웨어-오버-에어
심포니 링크는 액세스포인트에서 단일 노드나 노드 그룹으로 최대 256KB 파일 전송 가능. 인프라 비컨(IB) 기간을 일시 연장해 액세스포인트가 펌웨어 전송용 추가 다운링크 용량 확보하면서 네트워크는 업링크 트래픽으로 정상 동작. 업데이트 완료 후 액세스포인트 정상 IB 스케줄로 복구.

OTA 파일 전송 초기화
초기화 단계에서 액세스포인트가 연관 엔드노드에 새 펌웨어 파일 알리고 대기. 사전 정의 기준(최소 노드 수 또는 비율 준비 완료, 또는 타임아웃) 충족 시 액세스포인트 세그먼트 전송 시작.

OTA 파일 전송 프로세스
처리량 극대화 위해 액세스포인트가 단일 프레임에 다중 파일 세그먼트 전송. 일반 다운링크(노드당 한 메시지 또는 한 브로드캐스트)와 달리 여러 세그먼트 집계. 노드 수신 후 세그먼트 조립. 각 전체 버스트 후 노드 누락 세그먼트 보고.
액세스포인트 노드 보고 기반 재전송 리스트 컴파일해 누락 세그먼트 전송. 이 멈춤-대기 ACK-재전송(ARQ) 사이클이 모든 노드 성공 확인 또는 실패 임계치 도달까지 반복.
OTA 파일 전송 종료
노드 성공 수신 보고 후 Apply File 커맨드 수신까지 깨어있음. 이 커맨드가 업데이트 확정하고 펌웨어 활성화 트리거.
결론
심포니 링크 OTA 방식은 애플리케이션 코드, 스크립트, 설정 데이터, 암호화 키, 데이터베이스, 모듈 펌웨어 전송 가능. 표준 로라완으론 이전 불가능했던 다양한 산업·엔터프라이즈 유스케이스 개방.
