본문 바로가기

Information Network

Multicast Routing protocols .Posted by Heny2kawmi



Multicast Routing Protocols


전송되는 메시지는 유니캐스트, 멀티캐스트, 또는 브로드캐스트일 수 있다. 인터넷과 관련이 있기 때문에 이 용어 들에 대해 간단하게 알아보자.


유니캐스팅(Unicasting)
유니캐스트 통신에서는 하나의 발신지와 하나의 목적지가 있다. 발신지와 목적지 사이의 관계는 1:1로써, 이러한 형태의 통신에서는 IP 데이터그램에서 발신지와 목적지 주소 모두는 호스트에 할당된 유니캐스트 주소들이다.

유니캐스팅에서 라우터는 라우팅 테이블에 정의된 단지 하나의 인터페이스(최적 경로에 속하는)를 통하여 수신된 패킷을 전달한다.




멀티캐스팅(Multicasting)
멀티캐스트 통신에서는 하나의 발신지와 하나의 목적지 그룹이 있다. 발신지와 목적지 관계는 1:다수로써, 이러한 형태의 통신에서는 발신지 주소는 유니캐스트 주소지만 목적지 주소는 그룹 주소로 하나 또는 그 이상의 목적지를 정의한다. 이때 그룹주소는 그룹의 소속원을 식별하게 된다. 

멀티캐스팅에서 라우터가 하나의 패킷을 수신할 때 여러 개의 인터페이스를 통하여 전달할 수도 있다.





브로드캐스팅(Broadcasting)
브로드캐스트 통신에서는 발신지와 목적지 사이의 관계는 1:모두이다. 단지 하나의 발신지만 있고 모든 다른 호스트들은 목적지가 되는 것이다. 인터넷은 인터넷이 만들어내는 엄청난 양의 트래픽과 필요로 하는 대역폭 때문에 명시적으로 브로드캐스팅을 지원하지 않는다.


멀티캐스팅 VS 다중 유니캐스팅
용어를 설명하면서 멀티캐스팅과 다중 유니캐스팅 사이를 구분할 필요가 있다.


멀티캐스팅은 발신지로부터 하나의 단일 패킷을 가지고 시작하며 라우터에 의하여 복제된다. 각 패킷에 있는 목적지 주소는 모두 복제 패킷과 동일하며 단지 하나의 단일 복사 패킷만이 임의의 두개의 라우터 사이를 이동하게 된다.

예를 들어 분산 데이터베이스 접근이나 정보배포, 뉴스배포, 원격회의, 원격 교육등이 멀티캐스팅에 이용된다.






다중 유니캐스팅에서는 여러 개의 패킷들이 발신지로부터 생성된다. 예를 들어 다섯개의 목적지 주소가 있다면 발신지는 서로 다른 유니캐스트 목적지 주소를 갖는 다섯개의 패킷을 전송한다. 때문에 임의의 두개의 라우터 사이를 이동하는 다중의 복사 패킷이 있을 수 있다.

예를 들어 E-mail을 보내는 행위는 다중 유니캐스팅에 속한다.









Multicast Routing


최적 도메인 간 라우팅 처리는 결과적으로 최단 경로 트리를 찾는 것이다. 트리의 root는 발신지이고, leaf는 잠재적인 목적지이다. root에서 각 목적지까지의 경로가 바로 최단 경로가 된다. 그러나 유니캐스트 멀티캐스트 라우팅에서의 트리의 수와 트리의 형성은 서로 다르다. 각각 분리해서 알아보자!


유니캐스트 라우팅
유니캐스트 라우팅에서는 라우터가 패킷을 수신할 때 패킷의 목적지에 대한 최단 경로를 찾는 것이 필요하다. 라우터는 특별한 목적지를 위하여 라우팅 테이블을 참고한다. 목적지에 대응하는 다음 홉 항목은 최단 경로의 시작이다. 라우터는 최적으로 모든 목적지에 도달하는 최단 경로 트리를 가지고 있다.

즉, 라우팅 테이블에 있는 각 라인은 최단 경로이며 전체 라우팅 테이블은 최단 경로 트리가 되는 것이다. 유니캐스트 라우팅에서 각 라우터는 패킷을 전달하기 위한 단지 하나의 최단 경로를 필요로 한다.




멀티캐스팅 라우팅
라우터가 멀티캐스트 패킷을 수신하면 유니캐스트 패킷을 수신할 때의 상황과는 다르다. 멀티캐스트 패킷은 하나의 네트워크 이상의 목적지를 갖을수도 있기 때문에 단일 패킷의 그룹 회원에 대한 전달은 최단 경로 트리를 요구한다. 만약 n개의 그룹을 가지고 있다면 n개의 최단 경로 트리가 필요할지도 모른다. 멀티캐스트 라우팅에 대한 복잡성을 상상할 수 있다. 때문에 이런 복잡성을 해결하기 위하여 발신지 기반 트리와 그룹 공유 트리 2가지 방법을 이용한다.

발신지 기반 트리(Source-Based Tree)
발신지 기반 트리에서 각 라우터는 각 그룹을 위한 하나의 최단 경로 트리를 갖는 것이 필요하다. 그룹을 위한 최단 경로 트리는 그룹에 대한 소속원을 가지고 있는 각각의 네트워크를 위하여 다음 홉을 정의한다.




그룹 공유 트리(Group-shared Tree)
그룹 공유 트리 방법에서는 각 라우터가 m개의 최단 경로 트리를 갖는 대신에 단지 하나의 지정된 라우터 중심 코어라고 부르는 랑데부 라우터가 멀티캐스트 트래픽을 배포한다. 코어는 라우팅 테이블에 m개의 최단 경로 트리를 갖으며, 도메인에 있는 나머지 라우터는 트리를 갖지 않는다.

만약 라우터가 멀티캐스트 패킷을 수신하면 유니캐스트 패킷에 있는 패킷을 캡슐화하고 그것을 코어 라우터로 송신 한다. 코어 라우터는 캡슐로부터 멀티캐스트 패킷을 제거하고 패킷 경로를 위하여 라우팅 테이블을 참고하게 된다.








Routing Protocols


과거 십여 년 동안 여러 개의 멀티캐스트 라우팅 프로토콜이 출현하였다. 이러한 프로토콜의 몇몇은 유니캐스트 라우팅 프로토콜의 확장판이고 나머지는 완전히 새로운 것이다. 다음은 이러한 프로토콜의 분류를 보여주고 있다.
 




멀티캐스트 링크 상태 라우팅 : MOSPF
MOSPF(Multicast Open Shortest Path First, 멀티캐스트 개방 최단 경로 우선)는 발신지 기반 트리를 생성하기 위하여 멀티캐스트 링크 상태 라우팅을 사용하는 OSPF 프로토콜의 확장이다. 프로토콜은 호스트가후원하는 그룹 주소 또는 주소들을 갖는 호스트의 유니캐스트 주소와 결합하기 위하여 새로운 링크 상태 갱신 패킷을 요구한다. 이 패킷을 그룹-소속원 LSA라고 한다.

이 방식으로 우리는 특정한 그룹에 속하는 호스트들만을 트리에 포함할 수 있다. 즉, 한 그룹에 속하는 모든 호스트들을 포함하는 트리를 만든다.

* MOSPF는 데이터 구동 프로토콜이다.


멀티캐스트 거리 벡터 라우팅 : DVMRP
DVMRP는 멀티캐스트 거리 벡터 라우팅을 인터넷에서 구현한 것이다. 멀티캐스트 거리 벡터 라우팅은 발신지 기반 트리를 사용하지만 라우터는 실질적으로 라우팅 테이블을 결코 만들지 않는다. 라우터가 멀티캐스트 패킷을 수신하면 라우팅 테이블을 참고한 것처럼 패킷을 전달한다. 최단 경로 트리가 순간적이라고 말할 수 있다.

이것을 수행하기 위하여 멀티캐스트 거리 벡터 알고리즘은 4가지 결정하기 전략에 기반을 둔 절차를 사용한다.

1. Flooding
라우터는 패킷을 수신하고 목적지 그룹 주소조차도 살펴보지 않고 패킷이 수신된 하나의 인터페이스만을 제외하고 모든 인터페이스로부터 밖으로 전송시킨다. 플러딩은 멀티캐스팅의 이러한 목표를 달성한다. 즉, 플러딩은 패킷을 브로드캐스트하고 이것으로 인하여 시스템에서 루프가 발생하게 된다. 그리고 이러한 단점을 수정하기 위하여 RPF를 사용한다.

2. RPF(Reverse Path Forwarding, 역 경로 전달)
RPF는 수정된 플러딩 전략이다. 플러딩으로 발생하는 루프를 방지하기 위하여 단지 하나의 복사복만이 전달되고 나머지 복사본들은 폐기한다. RPF에서 라우터는 발신지에서 복적지로 가장 짧은 경로를 이동하는 복사본을 전달하며, 이러한 복사본을 찾기 위하여 RPF는 유니캐스트 라우팅 테이블을 사용한다. 이때 라우터는 패킷이 최단 경로로부터 여행을 했다면 패킷을 전달하고 그렇지 않다면 폐기하게 되는데, 이 전략은 발신지로부터 라우터까지 항상 하나의 최단 경로가 있기 때문에 루프를 방지할 수 있다. 패킷이 라우터를 떠나 다시 들어온다면 최단 경로로 이동하지 않은 것이다라는 것을 알 수 있다.