[네트워크] 멀티캐스팅

ljkgb·2021년 5월 11일
0

Network

목록 보기
10/12
post-thumbnail

네트워크

1. 멀티캐스팅

멀티캐스팅에 대해 알아보기 전에 유니캐스팅브로드 캐스팅의 개념부터 알아보도록 하겠다. 유니캐스팅은 송신자가 한 사람이면서 받는사람도 한사람인 즉, 1:1 데이터 기술이다. 이와 반대로 브로드 캐스팅은 하나의 송신자와 네트워크상의 모든 호스트들이 수신자가 되는 경우이다. 멀티캐스팅이란 하나의 송신자와 특정 그룹에 속한 다수의 수신자와의 통신형태를 의미한다. 각각의 주소 클래스는 유니캐스트은 A, B, C 를 사용하고 D 클래스는 멀티캐스트에서 사용하는 주소이다. 여기서 D클래스를 사용하는 멀티캐스트 주소에서는 유니캐스트의 주소를 받을 수도 있지만 멀티캐스트 주소를 부여받을 수 있다.

* 요약 *
(1) 유니캐스팅: 하나의 송신자, 하나의 수신자
(2) 브로드캐스팅: 하나의 송신자, 송신자 제외 모두 수신자
(3) 멀티캐스팅: 하나의 송신자, 특정 그룹에 속한 다수의 수신자

2. 멀티플 유니캐스팅

멀티캐스팅과 유사한 개념의 멀티플 유니캐스팅은 일종의 멀티캐스팅을 흉내내는 방법이라고 할 수 있다. 예를 들어 그룹에 속해 있는 수신자가 10곳이라고 할 때 한 명의 송신자가 유니캐스트 주소를 10개를 배정하여 패킷을 10곳 모두 보내는 방식으로 멀티캐스팅과 같은 효과를 볼 수 있다. 하지만 10곳이 아니라 10,000곳 100,000곳 점점 늘어나게 되면 처음 보낸 패킷과 마지막 패킷간의 지연시간이 발생하게 된다. 이외에도 1개만 보내도 되는 패킷을 만개 십만개씩 보내다보니 대역폭을 과대로 소모하게 된다는 단점이 있다.

* 그림출처

위의 그림을 보면 한명의 송신자와 다수의 수신자가 존재하는 것을 알 수있다. 여기서 멀티캐스팅의 송신자는 1개의 패킷을 보내지만 멀티플 유니캐스팅에서는 애초에 출발할때 여러개의 패킷이 출발한다는 것을 볼 수 있다.

3. 그룹관리

멀티캐스팅에서 해야할 일 중 첫번째는 그룹의 가입과 탈퇴를 관리하는 그룹관리 프로토콜이 있어야하고 네트워크에서 어떻게 패킷을 잘 전달할건지 관리하는 멀티캐스트 라우팅 프로토콜이 있어야 한다.
이 중 인터넷상에서 그룹관리는 이미 정해져 있다. IGMP 프로토콜(Internet Group Management Protocol)을 사용하여 멀티캐스트 그룹관리는 하게 된다. 여기서 유의해야 할 점은 IGMP 프로토콜은 멀티캐스팅 라우팅 프로토콜이 아닌 그룹 관리만을 담당한다는 것이다. (즉, 경로를 선택하는 일에는 직접적인 관여 안함!)

IGMP 프로토콜은 3가지 종류의 메세지가 있다.

멀티캐스트 그룹에 가입을 요청하는 메세지인 Membership Report, 탈퇴는 Leave Report 그리고 관리상 질의응답을 요청하는 경우에 사용하는 Query가 있다. Query의 종류는 GeneralSpecial로 나뉘게 된다.

1) 멀티캐스트 라우터

네트워크에서 멀티캐스트를 관리하는 라우터를 멀티캐스트 라우터라고 부른다. 멀티캐스트 라우터는 네트워크에 있는 컴퓨터중 어떤 것이 특정 멀티캐스트 그룹에 속하는지 목록을 가지고 있게 되고 그 목록에 따라 패킷을 송신 여부를 결정하게 된다.

2) 그룹 가입

호스트는 그룹에 가입하기 위해 가입요청 메세지(Membership Report)를 멀티캐스트 라우터에게 보내게 된다. 예를 들어 화상회의를 한다고 가정해보자. 나는 화상회의를 위해 어플리케이션을 깔고 해당 어플리케이션을 더블클릭하여 실행하게 된다. 여기서 실행하기 위해서는 해당 화상회의의 패킷을 받아야 하는데 멀티캐스트 라우터에게 "나 화상회의 같이하려고 하니까 해당 패킷을 나에게 보내줘"라고 요청하여 받게 된다. 이 요청이 Membership Report가 되고 Membership Report 안에는 가입하고자 하는 특정 그룹의 주소를 함께보내게 된다.

3) 그룹 탈퇴

그룹을 탈퇴할 때에는 호스트는 탈퇴 요청 메시지(Leave Report)를 멀티캐스트 라우터에게 송신하게 된다. 여기서 탈퇴 요청을 받은 멀티캐스트 라우터는 해당 네트워크의 다른 호스트가 아직 그룹에 가입해 있는지를 확인한 후 없다면 그룹을 삭제하게 된다.(하나의 호스트가 탈퇴한다고 했을 때 다른 호스트들은 아직 그 그룹에 가입해 있을 수 있기 때문에) 여기서 가입해 있는지 확인하는 방법은 네트워크 내에 그룹 가입자가 존재하는지 확인하기위해 멀티캐스트 라우터는 특별질의 메시지(Special query)를 보내게 된다.

* 요약 *
(1) 호스트는 멀티캐스트 라우터에게 Leave Report 송신
(2) 라우터는 네트워크에 있는 모튼 컴퓨터에게 Special query를 보내 확인
(속해있는 호스트가 있을 때)
(3) 속해있는 호스트는 Membership Report를 보내 아직 가입해 있다는 것을 라우터에게 알린다
(속해있는 호스트가 없을 때)
(3) 아무도 응답을 안하게 되고
(4) 멀티캐스트 라우터는 해당 그룹을 삭제하게 된다

4) 그룹 모니터링

만약, 정전이나 다른 이유에 의해서 컴퓨터가 다운됐을 경우에는 어떻게 될까? Leave Report를 보내지도 않았는데 갑자기 끊어지게 되면 멀티캐스트 라우터 입장에서는 아무도 쓰지 않는 그룹인데 계속해서 멀티캐스트 패킷을 보낼 수도 있다. 이럴 경우를 대비해서 멀티캐스트 라우터는 일반질의 메시지(General query)를 주기적으로 보내 그룹가입자를 모니터링 하게된다. 이때 이 메시지를 받은 모튼 시스템은 해당 그룹에 대한 가입상황을 보고해야하고 보고되지 않은 시스템들은 모두 삭제한다.

4. 멀티캐스트 라우팅

유니캐스트 라우팅의 경우 라우터가 하나의 목적지에 대한 하나의 최적경로를 가지게 된다. 하지만 멀티캐스트 라우팅은 라우터가 그룹에 대한(목적지는 여러곳) 하나의 최적경로를 가지게 된다. 여기서 n개의 그룹이 있다면 n개의 최적경로가 필요하게 된다.
또한 해당 그룹에는 여러개의 네트워크가 있을 수 있으며 이는 트리를 구성하여 멀티캐스트 패킷을 전달하게 된다.

그 트리를 구성하는 방법에 따라 다음과 같이 나뉜다.

1) 송신자 기반 트리(Source-Based trees)

  • 모든 멀티캐스트 라우터들이 각 그룹에 대해 멀티캐스팅 라우터 테이블을 모두 작성하는 것으로 각 라우터는 그룹별로 하나의 최적경로를 구성한다.
  • 관련 프로토콜
    • DVMRP: 멀티캐스팅 라우팅 프로토콜로 RIP와 같이 거리 백터 라우팅 방식을 사용한다.
    • MOSPF: OSPF와 같이 링크상태 라우팅 방식
    • PIM-DM

2) 그룹 공유 트리(Group-shared trees)

  • 동일한 트리를 각 그룹이 하나씩 가지고 이를 공유한다.
  • 각 라우터가 그룹 별로 최적경로를 구성하는 것이 아니라 센터코어 라우터(= 랑데부 라우터)만 그룹에 대한 최적경로를 구성하게 된다.
  • 관련 프로토콜
    • CBT
    • PIM-DM

* 내용출처
유니캐스트(UniCast), 브로드캐스트(BroadCast), 멀티캐스트(MultiCast)
쉽게배우는 네트워크 강의(한국직업방송)

profile
🐹

0개의 댓글