- 유니캐스팅: 하나의 발신지와 목적지(1:1)
- 멀티캐스팅: 하나의 발신지와 목적지 그롬(1:n )
DVMRP(Distance Vector Multicast Routing Protocol)
- 거리-벡터 멀티캐스트 라우팅 프로토콜
- 유니캐스트 라우팅에 사용되는 RIP를 기반으로 멀티캐스팅이 가능하도록 확장한 것이다.
- DVMRP는 발신지 기반 트리 기법을 사용한다. 멀티캐스트 패킷을 수신할 각 라우터는 먼저 다음과 같은 세 가지 단계를 거쳐 발신지 기반 멀티캐스트 트리를 생성해야 한다.
-
라우터는 RPF(Reverse Path Forwarding)로 발신지와 자신 사이의 최적 트리를 생성하는 시뮬레이션을 한다.
- Multicast에서 모든 노드에 대한 최적 트리를 찾기는 복잡하다.
- 대신, 각 하위 노드에서 멀티캐스트 지점에 대한 최적 경로를 찾으면 그것을 뒤집은 것을 합친 정보로 최적 트리를 만들 수 있을 것이다.
-
라우터는 RPB(Reverse Path Broadcasting)을 사용하여 발신지가 자신이고, 인터넷 상의 모든 네트워크를 트리의 구성원으로 하는 브로드캐스트(스패닝) 트리를 생성한다.
- 라우터가 발신지로부터 수신한 복사본 중 단 하나의 복사본만을 전송하고 나머지는 삭제하는 알고리즘이다.
- 하나의 라우터를 부모 라우터로 지정하여, 담당 네트워크의 부모 라우터가 아닌 라우터가 멀티캐스트 패킷을 수신하면 패킷을 폐기한다.
- RPB는 RPF 알고리즘을 통해 생성된 그래프로부터 브로드 캐스트 트리를 실제로 생성한 뒤 그래프에서 순환의 원인이 되는 링크를 삭제한다.
- 만약 부모 선택을 위해 최단경로를 기준으로 사용하면 발신지가 루트, 네트워크 각각은 리프 노드가 되는 최단경로 트리를 가지게 된다.
-
라우터는 PRM(Reverse Path Multicasting)을 사용하여 그룹의 회원이 없는 네트워크의 끝부분(트리의 구성원 부분)을 잘라냄으로써 멀티캐스트 트리를 구성한다.
- 리프 노드 레벨에서 라우터들은 IGMP 프로토콜을 이용하여 구성원들의 정보를 수집한 네트워크의 연결을 실행한다.
- 네트워크의 부모 라우터는 발신지 라우터로부터 얻은 역 최단경로 트리를 이용하여 정보를 상단에 퍼트인다.
- 라우터가 그룹 구성원에 관련된 모든 정보를 수신하면 어느 인터페이스가 제거되어야 할지 알 수 있다.
MOSPF(Multicast Open Shortest Path First)
- MOSPF는 유니캐스트 라우팅에 사용되는 OSPF 프로토콜의 확장 형태이며, 발신지 기반 트리 기법을 사용하여 멀티캐스트 한다.
- 각 라우터는 최단경로 트리를 생성하기 위한 LSDB를 가진다.
라우터는 다음과 같은 과정을 통하여 발신지 S로부터 수신하는 멀티캐스트 패킷을 전달하고, 목적지 G까지 전송한다(그룹 내의 수신자).
-
라우터는 다익스트라 알고리즘으로 최상위 노드로부터 최단거리 경로트리를 S에서 생성하고, 인터넷 내의 모든 목적지를 리프 노드로 사용한다.
- 트리의 루트는 패킷의 발신지 주소 내에 정의된 패킷의 발신지가 된다.
- 인터넷 전체 토폴로지 정보를 가진 LSDB가 있기에 이러한 트리를 만들 수 있다.
- 각 발신지에 대해 각각 다른 트리를 생성해야한다.
-
라우터는 첫 번째 단계에서 생성된 최단 경로 트리에서 자기 자신을 찾는다.
- 즉, 라우터는 자기 자신을 서브트리의 루트로써 최단경로 서브트리에 생성한다.
-
최단경로 서브트리에서 라우터는 서브트리의 루트로서, 모든 네트워크는 리프노드로서 브로드캐스트한다.
- 라우터는 DVMRP에서와 유사하게 브로트캐스트 트리의 노드를 제거하여 멀티캐스트 트리로 변경한다.
- 리프 레벨의 정보를 찾기 위해 IGMP를 사용한다.
- MOSPF는 멤버가 모든 라우터에 새로운 링크상태 갱신 패킷을 추가하도록 하였기 때문에, 정보를 주고받아 브로트캐스트 트리를 멀티캐스트 트리를 만들 수 있다.
-
라우터는 멀티캐스트 트리의 가지에 해당하는 인터페이스로부터 전달받은 패킷을 전송할 수 있다.
- 멀티캐스트 패킷의 사본은 활성화된 멤버가 있는 그룹의 네트워크에 모두 도달해야한다.
참고