Computer Science/네트워크

[컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)

lumana 2024. 4. 17. 15:25

멀티캐스트 라우팅(Multicast Routing)


Introduction

  • 현재의 인터넷은 유니캐스트만 있는 것이 아님
  • 멀티캐스트 통신이 급증하는 추세임
  • Unicasting, Multicasting, and Broadcasting 기본 개념
  • 멀티캐스트 라우팅 프로토콜 소개

cf) 유니캐스팅

  • 하나의 소스, 하나의 목적지
  • One-to-One
  • 경로상의 라우터는 한 출구 인터페이스로 하나의 패킷만 포워딩

멀티캐스팅

  • 하나의 소스(source), 여러 목적지(destination)
  • One to many
  • 소스 주소는 unicast 주소, 목적지 주소는 그룹 주소
    • 이 그룹 주소에 가입(join)한 모든 장치들이 데이터를 받을 수 있습니다.
  • 그룹 주소는 그룹의 멤버를 지정
    • D 클래스 주소는 네트워크상의 특정 멀티캐스트 그룹을 식별하는 데 사용
    • 그래서 이 D class 주소는 여러 호스트가 사용함
    • 이 주소를 데이터 패킷의 목적지로 설정하면, 그룹에 가입된 모든 호스트가 데이터를 수신
    • 안쓰는 D 클래스 주소를 가져와 사용, 다 쓰면 반납
      • GPT : 호스트는 멀티캐스트 그룹에 명시적으로 가입하거나 탈퇴할 수 있고, IGMP틀 통해 관리됨

브로드캐스팅(Broadcasting)

  • One-to-all 통신
  • 하나의 호스트가 네트워크의 모든 호스트에게 전달
  • 인터넷 수준 전체에서는 제공하기 어려움
  • 부분적 브로드캐스팅은 가능
    • GPT : 부분적인 브로드캐스팅은 특정 네트워크 세그먼트나 도메인 내에서 가능합니다. 예를 들어, 하나의 자율 시스템(AS) 내에서는 브로드캐스팅이 일어날 수 있습니다
  • 일부 피어-투-피어(peer-to-peer) 응용에서는 모든 피어에게 엑세스 하기 위해 사용하는 경우가 있음
  • 일부 도메인 (지역 or AS)에서 멀티캐스팅을 브로드캐스팅으로 해결하는 경우도 있음

멀티캐스트 기초

  • 멀티캐스트 주소
  • 멀티캐스트 그룹 정보 수집
  • 멀티캐스트 최적 트리

멀티캐스트 주소

  • 1 sender, many receiver
    • 가끔 수천에서 수백만 (전세게)
  • 모든 수신자를 패킷에 넣을 수 없음
    • 수신자가 너무 많기 때문
      • 수신자를 지정하지 않고, 그룹 주소를 사용한다는 말임
  • IP 패킷의 수신주소는 오직 1
    • GPT : 멀티캐스트 통신에서 IP 패킷은 오직 하나의 멀티캐스트 주소를 수신주소로 사용한다는 말
    • GPT : 멀티캐스트 통신에서는 하나의 전송으로 여러 수신자에게 데이터를 전달할 수 있게 해, 네트워크 효율성을 크게 향상
  • 멀티캐스트 주소가 필요
    • 멀티캐스트 주소는 하나가 아닌 수신자 그룹의 주소
  • 멀티캐스트 주소는 그룹의 식별자

멀티캐스트 주소의 바이너리 표현

  • D 클래스이므로, 1110으로 시작, 나머지 28비트는 Group identifer
    • ex) 224.0.0.0/4

데이터 링크 계층에서의 전달

  • 멀티캐스트에서, 인터넷 수준에서의 전달은 네트워크 계층의 그룹 주소를 이용하여 전달
  • 멀티캐스트 패킷을 프레임에 넣어서 전달하기 위해 데이터링크 계층에서도 멀티캐스트 주소가 필요
    • GPT : 해당 계층에서 인식할 수 있는 멀티캐스트 주소, 즉 멀티캐스트 MAC 주소가 필요합니다.
  • 유니캐스트의 경우에는 ARP를 이용하여 MAC 주소를 얻지만, 멀티캐스트 주소의 경우에는, 하부 데이터링크 계층의 지원여부에 다라 ARP를 통해 멀티캐스트를 위한 MAC(physical, 물리) 주소 획득이 안될 수 있음. (IP주소는 논리(logical, 주소)
    • GPT : 멀티캐스트 IP 주소를 특정 규칙에 따라 멀티캐스트 MAC 주소로 변환하는 고정된 매핑 규칙을 사용함

D 클래스로 주소로부터 이더넷 주소로의 매핑

  • 이더넷 주소의 경우 01:00:5E:0(25bit) 로 시작
    • 48비트중 23비트가 남음
  • 남은 23비트는 D클래스 주소의 23개 비트로 이루어진 multicast address를 가져옴
    • IP 헤더의 DA는 32비트이고, 이 중 1110과 5개 사용되지 않은 비트를 제외한 나머지를 가져오는 것이다
  • GPT : 특별한 범위인 01-00-5E-00-00-00에서 01-00-5E-7F-FF-FF 사이에 할당
  • GPT : 멀티캐스트 IP 주소의 하위 23비트를 멀티캐스트 MAC 주소의 하위 23비트로 직접 매핑합니다
    • 멀티캐스트 MAC 주소의 상위 25비트는 고정된 값인 01-00-5E을 사용하며, 이 중 24번째 비트는 항상 0입니다. 이는 멀티캐스트 MAC 주소가 항상 01-00-5E로 시작하도록 보장함

Example 6.1) 멀티캐스트 IP 주소 232.43.14.7를 위한 이더넷의 멀티캐스트 주소는?

Solution)

a. IP 주소의 하위 23비트를 추출한다.

b. 앞쪽에 이더넷의 멀티캐스트 주소를 붙인다.

2B:0E:07을 추출하고 앞쪽에 01:00:5E를 붙여주면 최종적으로 멀티캐스트 주소는

  • 01:00:5E:2B:0E:07

Example 6.2) 멀티캐스트 IP 주소 228.43.14.7를 위한 이더넷의 멀티캐스트 주소는?

  • 결과는 앞 페이지의 예제 결과와 같다.
  • IP는 달라도 MAC 주소는 같을 수 있음(9bit를 무시하기 때문)
  • 따라서 다른 그룹으로 전달될 수 있는데, 이는 상위 계층에서 해결해준다.(무시하면 된다)

 

터널링 (Turnneling)

  • GPT : 한 네트워크 프로토콜이나 서비스가 지원하지 않는 기능을 다른 네트워크 프로토콜을 통해 이용할 수 있게 해주는 기술
    • 네트워크 내의 특정 데이터를 다른 형식의 네트워크 패킷 내에 캡슐화하여 전송하는 방식으로 이루어짐
  • 대부분의 WAN은 멀티캐스트를 지원하지 않음
    • 터널링(Tunneling)으로 해결
    • WAN은 기본적으로 peer to peer (1:1임)
    • 헤더를 추가로 붙여서 중간에 멀티캐스팅을 지원하지 않아도, 통과시킬 수 있음(+ 암호화도 가능)
  • 터널링은 멀티캐스팅 패킷을 유니캐스팅 패킷으로 캡슐화하여 전송
    • 멀티캐스트 데이터는 원래의 헤더와 페이로드(바디)를 유지하면서, 그 위에 추가적인 헤더가 붙어 유니캐스트 패킷으로 재포장
    • 유니캐스트를 지원하는 WAN을 통해 전송되고, 도착지에서 다시 원래의 멀티캐스트 데이터로 복원됩니다.

그룹 정보 모으기 (IGMP)

  • 내 네트워크 안에 어떤 그룹이 있는지를 알아야 함

유니캐스트와 멀티캐스트에서 포워딩 테이블생성 2단계:

  1. 라우터는 자신에게 연결된 목적지를 인식
    • 유니캐스트의 경우, 자동으로 알게 됨
    • 멀티캐스트는 멤버들을 알게 하는 방안이 필요 => IGMP
  2. 각 라우터는 위 단계에서 얻은 정보를 다른 모든 라우터에게 전달하여, 어떤 목적지가 어느 라우터에 연결되었는지를 알려줌
    • 유니캐스트의 경우 네트워크 프리픽스를 다른 라우터에게 전달
    • 멀티캐스트의 경우 존재하는 그룹의 정보를 다른 라우터에게 전달

멀티캐스트 포워딩

  • 유니캐스트와 다른점
  1. 전달 경로 수
  • 유니캐스트의 경우 하나의 목적지 (한방향으로만 전달)
  • 멀티캐스트의 경우 하나 이상의 목적지 (여러 방향으로 전달)
  1. 포워딩 결정 시 참조 정보
  • 유니캐스트의 경우 목적지 주소만 보고 결정
  • 멀티캐스트의 경우 소스, 목적지 주소 둘 다 보고 결정
    • 소스쪽에는 전송하지 않음

멀티캐스트의 2가지 접근방법

멀티캐스트 라우팅에서도, 유니캐스트 라우팅과 같이, 소스에서 목적지까지 최적 경로 트리 필요

  • 멀티캐스트 라우팅에서는 목적지 주소뿐만 아니라, 소스의 주소도 고려
  • 2가지 접근법
    • 소스 기반 트리(source-based tree) 라우팅
    • 그룹 공유 트리(group-shared tree) 라우팅

멀티캐스트 트리 종류

  • 소스 기반 트리(source-based tree)
    • 그룹(m)당 소스 개수(n)만큼의 트리: m * n 개 트리
    • 각 소스를 루트로 하는 트리
      • GPT : 이 트리는 특정 소스에서 멀티캐스트 그룹 멤버에게 데이터를 전달하기 위한 최적의 경로를 제공
      • 단점 : 단점은 많은 수의 소스와 대규모 멀티캐스트 그룹의 경우 관리해야 할 트리의 수가 매우 많아진다는 것입니다.
  • 그룹 공유 트리(group-shared tree)
    • 그룹(m)당 1개의 트리 : m개
    • Designated(Core, Rendezvous-point) 라우터를 루트로 하는 트리
    • 멀티캐스트를 보내려는 소스가, 유니캐스트로 랑데뷰포인트로 전달(터널링) 후, 멀티캐스팅(루트에서 그룹에 속한 노드에 나눠준다)
    • 코어 라우터 선정 알고리즘 필요

Intra-domina Protocols

  • Intra-domain : 도메인 내, AS 내에서 통신
  • Source-based tree approach
    • RIP 확장 : DVMRP
    • OSPF 확장 : MOSPF
  • Independent protocol
    • 소스기반이나 그룹공유기반 방식 네트워크 모두에 사용 가능
      • 따라서 RIP, OSPF 어떤 걸 써도 된다
    • 점점 많이 사용되고 있음
    • PIM-SM, PIM-DM

DVMRP

  • Distance Vector Multicast Routing Protocol (DVMRP)는 유니캐스트 라우팅 프로토콜인 Routing Information Protocol (RIP)의 확장
  • Source-based tree approach
  • 소스가 있고 방향이 있는 트리를 만든다
  • 멀티캐스트 트리 생성 3단계 알고리즘
    • RPF (Reverse Path Forwarding)
    • RPB (Reverse Path Broadcasting)
    • RPM (Reverse Path Multicasting)

멀티캐스트 트리 생성 3단계 알고리즘

  • Reverse Path Forwarding
    • 멀티캐스트의 소스가 있는 방향으로부터 온 패킷만을 포워딩
    • 유니캐스트 라우팅 테이블 참조
      • 소스가 어느쪽에 있는지 파악한다
    • 루프현상 제거
  • Reverse Path Broadcasting
    • 여러 네트워크에 연결된 네트워크로는 복수개의 패킷 전달
    • 부모 노드를 정해 하나만 수신하게 함
  • Reverse Path Multicasting
    • IGMP 통해 모은 정보를 기초로, 멤버가 없으면 메시지 교환을 통해 Prune(leaving, 나중에 다시 Join 가능)

Multicast Link State (MOSPF)

  • Open Shortest Path First (OSPF) 의 확장
  • Source-based tree approach
  • 각 라우터에 있는 그룹 멤버 정보를 통해서 트리 생성
    • 그룹 내의 각 소스를 루트로 하는 트리 생성
    • 라우터 자신을 루트로 하는 서브트리 생성
    • 멤버가 없는 경로를 Prune
      • 각 라우터는 IGMP(Internet Group Management Protocol)를 통해 멤버정보를 만들어, 플러딩을 통해 모든 라우터에게 정보 전달
  • 트리를 이용해 멀티캐스트 데이터 포워딩

PIM (Protocol Independent Multicast)

  • PIM은 유니캐스트 라우팅 프로토콜 종류와 관계없이 사용가능한 멀티캐스트 프로토콜
  • 멀티캐스트 패킷을 포워딩하기 위해 유니캐스트 라우팅 테이블을 이용 하지만, 어떻게 생생되었는지는 무관
  • 2가지의 모드
    • Densemode : 그룹의 액티브 멤버가 많을 때
    • Sparse mode : 소수 라우터만이 액티브 멤버를 가질 때

PIM-DM

  • 소스기반 트리의 DVMRP와 비슷하지만 단순화 하였음
    • RPF와 RPM만 사용
  • 2 Step
    • 멀티미디어 패킷 수신시 RPF 알고리즘 사용하여 검사
      • 수신방향검사
    • 수신 방향 맞으면 처음에는 Broadcasting, 나중에 Prune 이후는 멀티캐스팅

PIM-SM

  • 그룹 공유 트리
  • Designated Router (Core Router, 랑데부 포인터)
  • 2 Step:
    • 소스는 유니캐스트 터널링으로 멀티캐스트 패킷을 랑데뷰포인터로
    • 코어 라우터는 공유트리로 포워딩
  • 그룹마다 공유트리, 랑데뷰포인터 한 개씩 필요

Interdomain Routing Protocols

  • AS (Autonomous System)간
    • ex) ISP-ISP간
  • MBGP (Multicast Border Gateway Protocol)
    • BGP의 확장
  • BGMP (Border Gateway Multicast Protocol)

IGMP

  • Internet Group Management Protocol
  • 그룹 멤버 정보를 획득에 사용
  • ICMP와 같이 IP 패킷에 캡슐화되어 전달

IGMPv3 메시지

  • Query 메시지
  • 라우터가 네트워크내의 모든 호스트에게 주기적으로 보냄
  • 특정 그룹의 멤버가 있는지 확인
    • General query message : 모든 멀티태스크 그룹 멤버정보 원함
    • Group-specificquerymessage:특정그룹멤버정보원함
    • Source-and-group-specific query message
  • Report 메시지
    • 호스트가 query 메시지에 대한 응답
    • 그룹주소 레코드의 리스트 포함

Encapsulation

  • IP 패킷으로 캡슐화
    • protocol 필드값 2
  • TTL 필드값 1 : 현재 네트워크 내만 전파
    • 즉 다른 라우터로 전파X
  • 메시지별 IP 패킷의 목적지 주소 값