멀티캐스트 주소에 join 을 해야지만 커널로 데이터가 들어오는거 아닌가요?
제가 알고 있기로는.. 멀티캐스트 주소에 join 을 하면 스위치가 그 igmp join 커맨드를 받아서, 그룹에 추가시켜주고, 그때서부터 멀티캐스트 데이터가 전송이 되는것인줄 알았습니다.
그런데 kldp wiki 에서 이런글을 봤습니다.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
즉, 멀티캐스트는 패킷이 단 한번만 송신되어서 네트웍의 모든 호스트들이 그것을 읽는다는 점에서는 브로드캐스트와 같지만, 이 패킷들이 오직 커널(kernel)에서 원할 경우에만 읽고 처리한다는 점에서 브로드캐스트와 다르다.
이 특별한 패킷들은 IP 패킷이기 때문에 커널 수준(kernel level)에서 라우팅한다. 커널에 라우팅 경로를 알려주는 라우팅 알고리즘에 차이점이 있을 것이다.
https://wiki.kldp.org/wiki.php/LinuxdocSgml/Multicast-HOWTO 참고
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
이걸 읽어보면.. 일단 join 여부와 무관하게 네트워크에서 흐르는 멀티캐스트 데이터는 받기는 다 받지만.. join의 의미는 커널에서 drop 할지 안할지를 결정한다는 식이네요..
어느게 맞는거죠?
댓글 달기