요약
- RFC 1112는 로컬 Query와 Report를 통해 멀티캐스트 멤버십을 관측 가능하게 만들었지만, 무작위화된 보고서 억제(randomized report suppression) 메커니즘 때문에 한 호스트의 메시지가 구성원을 일일이 열거하지 않고 그룹을 대표하게 되었다.
- IGMPv1에는 Leave 메시지가 없었다. 라우터는 보고서가 끊기고 멤버십 상태가 시간 초과된 뒤에야 마지막 수신자가 사라졌음을 알게 되었다. RFC 2236이 이후 더 빠른 탈퇴 신호를 추가했다.
그룹 주소는 참석자 명단이 아니었다
IP 멀티캐스트 주소는 어떤 호스트도 속해 있지 않아도 영구(permanent) 주소일 수 있었다. 또한 호스트는 그룹에 가입하지 않고도 그 그룹으로 전송할 수 있었다.RFC 1112에서 Stephen Deering은 이 두 사실을 분리했다. 목적지 주소는 그룹을 가리키는 이름이고, 멤버십은 호스트와 네트워크 인터페이스별로 유지된다. 이 구분 덕분에 애플리케이션은 IP에 가입 또는 탈퇴를 요청할 수 있게 되었고, 라우터는 별개의 질문을 갖게 되었다. 이 연결된 네트워크에 지금 관심 있는 호스트가 존재하는가?
표준은 호스트 지원 수준을 두 단계로 기술했다. Level 1 호스트는 멀티캐스트 데이터그램을 전송할 수 있었지만 그룹에 가입하지 않았고 IGMP를 구현하지도 않았다. Level 2는 그룹 멤버십과, 인접 멀티캐스트 라우터에 이를 알리는 데 필요한 프로토콜을 추가했다. 따라서 그룹 주소 자체만으로는 수신 상태를 거의 알 수 없었다. 라우터에는 로컬 세그먼트의 신선한 신호가 필요했다.
첫 보고서가 홀로 오지 않았던 이유
라우터가 모든 호스트 주소224.0.0.1로 Host Membership Query를 보내면, 각 Level 2 호스트는 해당 인터페이스의 자신의 멤버십을 고려했다. 모든 답을 즉시 보내면 중복 제어 패킷이 한꺼번에 몰릴 것이었다. RFC 1112는 대신 각 멤버십에 무작위로 선택된 report-delay 타이머를 부여했다. 자신의 타이머가 만료되기 전에 같은 그룹에 대한 유효한 보고서를 들은 호스트는 자신의 보류 중인 보고서를 취소했다. 그 결과 한 건의 응답만으로 라우터가 최소 한 멤버가 남아 있음을 알 수 있었다.
이 메커니즘은 근거를 의도적으로 압축한 것이다. 라우터가 받는 것은 개수도, 기기 목록도, 모든 애플리케이션이 트래픽을 소비할 준비가 되었다는 증명도 아니었다. 하나의 로컬 네트워크에 대한 그룹 수준의 표시였다. 이는 반복 메시지를 줄여 주었다. 특히 많은 호스트가 같은 그룹을 수신하는 곳에서 그러했지만, 포워딩에 프로토콜이 필요로 하지 않는 정보는 버려졌다.
가입 처리는 주기적 질의에 대한 응답과는 달리 다뤄졌다. 새 그룹에 가입한 호스트는 그 네트워크의 첫 멤버일 수 있으므로 즉시 보고서를 보내도록 지시받았다. 손실에 대비해 보고서를 한두 번 반복하는 것이 권장되었다. 멀티캐스트 자체는 여전히 베스트에퍼드였다. 표준은 모든 멤버에게 온전한 전송을 보장하지도, 공통 패킷 순서를 보장하지도 않았다. 멤버십 신호는 라우터에 정보를 줄 수 있지만 전송을 확실하게 만들지는 못했다.
마지막 수신자 이후의 침묵
IGMPv1은 Query와 Report를 규정했지만 Leave Group 메시지는 규정하지 않았다. 호스트가 탈퇴하면 그 로컬 IP 모듈은 자신을 멤버로 취급하는 것을 멈출 수 있었지만, 라우터에는 즉시 알려지지 않았다. 주기적 Query가 라우터의 시야를 갱신했다. 어떤 호스트도 그 그룹을 보고하지 않으면 라우터의 멤버십 타이머는 결국 만료되었다. 작은 제어 프로토콜의 대가는 마지막 수신자보다 오래 남을 수 있는 상태였다.
이는 라우터가 떠난 호스트를 영원히 존재한다고 믿는 것과는 달랐다. Query와 멤버십 타이머에 의존하는 유한한 지연이었다. 그러나 이 지연은 대역폭이 큰 그룹이나 멤버십이 자주 바뀌는 네트워크에서 중요했다. 라우터의 근거가 시간이 지나 만료될 때까지, 남은 수신자가 없는 세그먼트로 트래픽이 계속 포워딩될 수 있었다.
RFC 2236에서 IGMPv2는 더 빠른 통지를 위한 Leave Group 메시지를 추가했다. Querier는 Leave에 이어 그룹별 Query를 수행하고, 세그먼트가 비었다고 결론짓기 전에 응답을 기다렸다. 이후 설계는 침묵을 증거로 바꾸지 않았다. 불확실성 구간을 짧게 하고 다른 수신자의 존재를 시험하도록 만들었을 뿐이다.
역사적 트레이드오프는 좁지만 오래 지속되는 것이었다. IGMPv1은 멤버십을 '존재 여부' 질문으로 다룸으로써 네트워크의 제어 트래픽을 최적화했다. 보고서 하나가 이웃들을 억제하도록 하여, 라우터가 로컬 그룹에 포워딩이 필요한지 판단하기에 충분한 정보를 유지하면서 프로토콜을 조용하게 유지했다. 다만 라우터에 알려 주지 못한 것은, 그 한 건의 보고서 뒤에 몇 명의 멤버가 서 있었는지, 그리고 마지막 멤버가 방금 떠났다는 사실이었다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





