멀티캐스트 라우팅(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단계:
- 라우터는 자신에게 연결된 목적지를 인식
- 유니캐스트의 경우, 자동으로 알게 됨
- 멀티캐스트는 멤버들을 알게 하는 방안이 필요 => IGMP
- 각 라우터는 위 단계에서 얻은 정보를 다른 모든 라우터에게 전달하여, 어떤 목적지가 어느 라우터에 연결되었는지를 알려줌
- 유니캐스트의 경우 네트워크 프리픽스를 다른 라우터에게 전달
- 멀티캐스트의 경우 존재하는 그룹의 정보를 다른 라우터에게 전달
멀티캐스트 포워딩
- 유니캐스트와 다른점
- 전달 경로 수
- 유니캐스트의 경우 하나의 목적지 (한방향으로만 전달)
- 멀티캐스트의 경우 하나 이상의 목적지 (여러 방향으로 전달)
- 포워딩 결정 시 참조 정보
- 유니캐스트의 경우 목적지 주소만 보고 결정
- 멀티캐스트의 경우 소스, 목적지 주소 둘 다 보고 결정
- 소스쪽에는 전송하지 않음
멀티캐스트의 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 이후는 멀티캐스팅
- 멀티미디어 패킷 수신시 RPF 알고리즘 사용하여 검사
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 패킷의 목적지 주소 값
'Computer Science > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] 08. 전송계층(1) (0) | 2024.05.18 |
---|---|
[컴퓨터 네트워크] 07. IPv6(차세대 IP) (0) | 2024.04.17 |
[컴퓨터네트워크] 05. 통신절차 (0) | 2024.04.10 |
[컴퓨터네트워크] 04. 유니캐스트 라우팅(2) - 유니캐스트 라우팅 프로토콜 (0) | 2024.04.10 |
[컴퓨터네트워크] 04. 유니캐스트 라우팅(1) - Unicast Routing (0) | 2024.04.10 |