Summary

  • 2026년 11월 2일의 CoAP 멀티캐스트 Observe 초안 17판은 같은 자원을 관찰하는 여러 클라이언트에 한 번의 알림을 보내는 방식을 제안한다. 아직 작업 중인 Internet-Draft다.
  • Feedback-Divider는 계속 듣고 싶은 클라이언트 일부를 무작위로 답하게 한다. 각 기기의 답장 확률은 1 / 2^Q이며, 서버는 도착한 R개의 확인으로 E = R × 2^Q를 계산한다.
  • 문서의 사례에서 서버는 32명이 있다고 추정하지만 실제 활성 클라이언트는 18명이다. 다섯 명이 답장을 선택하고 하나가 유실된다. 네 건이 도착해 지표는 16이 되고, 사례의 완충 계수를 쓰면 추정치도 16이 된다.

여러 소형 기기가 한 자원의 변화를 살핀다고 하자. RFC 7641에 따른 CoAP Observe에서는 각 클라이언트가 변경 소식을 받도록 등록한다. 서버가 기기마다 따로 응답하면 청중이 늘수록 보내야 할 메시지도 늘어난다. 새 초안은 관찰자를 묶어 한 번의 멀티캐스트 알림을 보내는 길을 제시한다. 전송은 가벼워진다. 반면 몇 대가 아직 그 소식을 기다리는지 알아내는 일은 무거워진다.

서버는 그룹을 나타내는 ‘가상’ Observe 요청을 내부에서 만들고 공통 Token을 사용한다. 가상 기기가 실제 네트워크로 요청을 보내지는 않는다. 클라이언트는 그룹 조건을 알고 알림을 듣는다. 서버가 메시지를 보낸 사실만으로는 모든 수신자의 목록이나 개별 수신 여부가 나오지 않는다. 초안은 활성 관찰자 수를 대략적인 추정치로 유지하게 한다.

점호 대신 표본을 뽑는다

17판의 8절에서 서버는 알림에 값 Q를 가진 Feedback-Divider를 넣는다. 이 기능을 지원하고 계속 듣고 싶은 클라이언트는 0부터 2^Q 미만의 정수를 무작위로 고른다. 0을 뽑은 기기만 임의의 짧은 대기 뒤에 단일 대상 Observe 재등록을 보낸다. 나머지는 활발히 듣고 있어도 침묵한다. 모두가 동시에 답하면 멀티캐스트가 아낀 트래픽을 답장이 다시 잡아먹는다.

서버는 조건에 맞게 도착한 확인을 R로 세고 2^Q를 곱해 지표 E를 만든다. 답할 확률이 4분의 1이라면 도착한 네 건은 열여섯 명을 가리킨다. 열여섯 명 각각의 수령증을 받은 뜻은 아니다. 추첨에는 변동이 있고 답장 패킷도 사라질 수 있다. 초안은 패킷 손실이 추정치를 치우치게 만든다고 명시한다. 전송 비용을 줄인 대가로 청중의 크기가 추론 대상이 된다.

표본을 뽑는 동안 새 기기가 들어올 수 있다. 초안은 현재 카운터 COUNT'를 바탕으로 새 지표 E와 이전 추정 N의 차이를 양의 정수 완충 계수 D로 나눠 COUNT' + ((E − N) / D)를 계산한다. 새 등록과의 관계에서 이 갱신은 원자적으로 이뤄져야 한다. 지난 표본으로 값을 고치다가 방금 들어온 관찰자를 지워서는 안 된다. 서버 장부가 맞아도 특정 알림의 배달 기록은 별개다.

문서가 든 숫자를 따라가 보자. 서버는 32대를 예상하고 Q=2를 선택해 각 기기에 4분의 1 확률로 답할 기회를 준다. 실제로는 18대가 활동 중이고, 다섯 대가 답을 고른다. 한 답장이 유실되어 서버에는 네 건만 도착한다. 지표 E는 16, 사례에서 D=1이면 카운터가 32에서 16으로 내려가고 그룹 관찰은 유지된다. ‘실제 18대’라는 숫자는 저자가 계산을 위해 독자에게 알려 준 값이다. 운용 서버는 네 건의 도착만 본다.

절약된 전송량의 사용법은 사업자가 정한다

Q=0이면 모든 활성 기기에 확인을 요청할 수 있다. 돌아오는 트래픽은 늘고 손실 가능성은 남는다. 질문 간격을 늘리면 비용은 줄지만 카운터가 낡는다. 큰 완충 계수는 수치 변화 속도를 늦춘다. 언제 다시 확인하고 얼마 이하에서 그룹 관찰을 끝낼지는 응용 서비스가 정한다. 너무 일찍 끝내면 여전히 듣는 기기가 공유 알림을 놓치고, 빈 그룹을 오래 유지하면 자원이 낭비된다.

RFC 7252는 바탕이 되는 CoAP 메시지 규칙을 정한다. 멀티캐스트 Observe 초안이 바꾸는 것은 업데이트 분배의 비용이다. 카운터는 지속적인 관심을 추정할 뿐 어느 기기가 특정 알림을 받거나 처리하거나 실행했는지 증명하지 않는다. 환경 수치를 보여 주는 화면이라면 대략적인 청중으로 전송 방식을 고를 수 있다. 특정 장치에 명령을 내리는 경우에는 그 장치의 회신이 필요하다.

공식 문서에는 실제 설치망의 손실 분포나 추정 오차 측정치가 없다. 활성 기기 수를 아는 시험망에서 추첨, 유실된 답장, 알림의 실제 도착을 함께 기록하면 종료 기준에 필요한 오차 범위를 얻을 수 있다. 거래는 명쾌하다. 한 번에 모두에게 알리는 것은 싸지만, 그 ‘모두’가 몇 명인지는 제비뽑기로 센다.

CoAP 멀티캐스트 Observe 초안 · Datatracker 기록 · RFC 7641 · RFC 7252