Chapter 12 Multicasting 과 Multicast 라우팅 프로토콜
학습목표(OBJECTIVES): 유니캐스팅, 멀티캐스팅 및 브로트캐스팅 통신을 비교하고 대조해 본다. IPv4 멀티캐스트 주소 공간에 대해 정의하고 이를 몇 개의 블록으로 나누는 구분 방법에 대해 알아본다. 망에 있는 그룹 멤버십 정보를 수집하는 일을 수행하는 IGMP 프로토콜에 관해 알아본다. 멀티캐스트 라우팅 프로토콜과 최단 경로 트리의 생성에 근거하여 이를 두 가지 범주로 나누는 것에 대한 일반적 아이디어를 살펴본다. 일반적인 멀티캐스트 링크 상태 라우팅에 대해 알아보고 이를 인터넷에 구현한 MOSPF라는 프로토콜을 살펴본다.
학습목표(OBJECTIVES) (continued) : 일반적인 멀티캐스트 거리 벡터 라우팅에 대해 알아보고 이를 인터넷에 구현한 DVMRP 프로토콜을 알아본다. 코어-기반 프로토콜인 CBT에 대해 살펴보고 두 개의 독립적인 멀티캐스트 라우팅 프로토콜 즉, PIM-DM과 PIM-SM에 대해 간단히 알아본다. 멀티캐스트 메시지가 멀티캐스트 라우터가 없는 지역을 지나가는 것이 필요할 때 터널을 생성하기 위한 방법을 보여주는 멀티캐스트 백본(MBONE)에 관해 살펴본다.
Chapter Outline 12.1 Introduction 12.2 Multicast Addresses 12.3 IGMP 12.4 Multicast Routing 12.5 Routing Protocols 12.6 MBONE
12-1 개요 이전 장들에서 라우터에 의한 데이터그램 전달은 주로 데이터그램 목적지 주소의 프리픽스 즉, 목적지 호스트가 연결된 망을 정의하는 값에 의존한다는 것을 배웠다. 물론 망 집적화 방안은 ISP(몇 개의 망을 함께 가지고 있는 큰 망으로 간주될 수 있음)에 전달할 몇몇의 데이터그램을 결합하고 최종 목적 망들에 전달하기 위해 나중에 분리하기도 하지만 기본 정책은 변하지 않는다. 위의 전달 방안을 이해한다면 유니캐스팅, 멀티캐스팅 및 브로드캐스팅을 정의할 수 있다. 인터넷에 관련된 이러한 용어들을 명확히 분류해 보도록 한다.
Topics Discussed in the Section Unicasting Multicasting Broadcasting
유니캐스팅(Unicasting) 하나의 송신지와 하나의 목적지간 통신
유니캐스팅에서, 라우터는 수신한 패킷을 단지 하나의 인터페이스를 통해 전달하게 된다. Note 유니캐스팅에서, 라우터는 수신한 패킷을 단지 하나의 인터페이스를 통해 전달하게 된다.
멀티캐스팅(Multicasting)
멀티캐스팅에서, 라우터는 수신한 패킷을 여러 인터페이스를 통해 전달할 수 있다. Note 멀티캐스팅에서, 라우터는 수신한 패킷을 여러 인터페이스를 통해 전달할 수 있다.
멀티캐스팅과 다중 유니캐스팅 비교
Note 다수의 유니캐스팅을 사용하여 멀티캐스팅을 에뮬레이션 하는 것은, 특히 다수의 멤버를 가지는 큰 그룹의 경우, 비효율적이며 큰 지연 시간을 생성할 수 있다.
멀티캐스트 응용 분산 데이터베이스 엑세스 정보 발송 뉴스 발송 원격 컨퍼런스 원격 강의
12-2 멀티캐스트 주소 멀티캐스트 주소는 멀티캐스트 그룹에 가입한 호스트의 그룹에 대한 목적지 주소이다. 멀티캐스트 주소를 목적지로 사용한 패킷은 수신자의 필터링 제약에 의한 경우를 제외하고는 모든 그룹 멤버에 전달될 수 있다.
Topics Discussed in the Section Multicast Addresses in IPv4 Selecting Multicast Addresses Delivery of Multicast Packets at Data Link Layer
Example 12.1 netstat 유틸리티를 -n, -r, -a의 세 옵션과 함께 사용한다. -n 옵션은 IP 주소를 숫자로 보여주고, -r 옵션은 라우팅 테이블을 보여주며, -a 옵션은 유니캐스트와 멀티캐스트를 포함한 모든 주소를 보여준다. 본 예제에서는 본 장의 내용과 관련된 필드만을 보여준다. 멀티캐스트 주소는 빨간색으로 보여진다.
Figure 12.4 Mapping class D to Ethernet physical address
01:00:5E:00:00:00에서 01:00:5E:7F:FF:FF 까지 Note 이더넷 멀티캐스트 물리 주소의 범위는 다음과 같다. 01:00:5E:00:00:00에서 01:00:5E:7F:FF:FF 까지
Example 12.2 멀티캐스트 IP 주소 232.43.14.7을 이더넷 멀티캐스트 물리 주소로 변환하라. solution 다음의 두 과정으로 변환된다. a. IP 주소의 오른쪽 23비트를 16진법으로 작성한다. 이것은 오른쪽 3바이트를 16진법으로 변환한 후 가장 왼쪽 숫자가 8보다 크거나 같으면 이 숫자에서 8을 뺌으로써 할 수 있다. 예에서 결과는 2B:0E:07이다. b. 앞부분의 결과를 이더넷 멀티캐스트 처음 주소인 01:00:5E:00:00:00에 더한다. 결과는 다음과 같다.
Example 12.3 멀티캐스트 IP 주소 238.212.24.9를 이더넷 멀티캐스트 주소로 변환하라. Solution 다음 두 단계에서 할 수 있다. a. 오른쪽 세 바이트를 16진법으로 쓰면 D4:18:09가 된다. 가장 오른쪽 숫자에서 8을 빼야하므로 결과는 54:18:09가 된다. b. 이 결과를 이더넷 멀티캐스트 처음 주소에 더하면 다음의 결과가 나온다.
터널링(Tunneling)
12-3 IGMP 멀티캐스트 통신이란 송신자가 동일한 그룹의 멤버들인 수신자 그룹에게 메시지를 전송하는 것을 의미한다. 메시지의 한 복사본만이 송신자에 의해 전송되나 라우터들에 의해 복사되고 전달되어야 하므로 각 멀티캐스트 라우터들은 각 인터페이스에 관련된 적어도 하나의 멤버를 가지는 그룹의 목록을 알 필요가 있다. 이러한 유형의 정보 수집은 두 가지 레벨로 일어나는데 하나는 지역적이고 다른 하나는 전역적이다. 첫 번째 업무는 IGMP 프로토콜에서 수행되고 두 번째 업무는 멀티캐스트 라우팅 프로토콜에서 수행된다.
Topics Discussed in the Section Group Management IGMP Messages IGMP Protocol Applied to host IGMP Protocol Applied to Router Role of IGMP in Forwarding Variables and Timers Encapsulation Compatibility with other Versions
네트워크 계층에서 IGMP 위치
Note IGMP는 그룹관리 프로토콜이다. 이것은 멀티캐스트 라우터가 인터페이스에 관련된 멤버의 리스트를 생성하고 갱신하는 것을 돕는다.
IGMP 메시지
멤버쉽 질의(Membership query) 메시지 형식
질의(query) 메시지 형식
멥버쉽 보고(Membership report) 메시지 형식
Example 12.4 그림 12.11은 3개의 프로세스인 S1, S2와 S3을 가지는 호스트를 보여준다. 첫 번째 프로세스는 오직 하나의 레코드만을 가진다. 두 번째와 세 번째는 각각 두 개의 레코드를 가진다. 송신자 주소를 보여주기 위해 소문자를 사용했다.
소켓 상태(Socket state)
소켓 레코드에 변화가 있을 때마다 인터페이스 상태는 위에서 언급한 법칙에 따라 변화된다. Note 소켓 레코드에 변화가 있을 때마다 인터페이스 상태는 위에서 언급한 법칙에 따라 변화된다.
Example 12.5 예제 12.4에 있는 호스트에 대해 인터페이스 상태를 만들기 위해 앞서 이야기한 두 가지 법칙을 사용한다. 먼저 각 멀티캐스트 그룹에 대한 송신자 주소 목록을 찾았다. a. 멀티캐스트 그룹 226.14.5.2는 두 개의 exclude 목록과 하나의 include 목록을 가진다. 이 경우 결과는 밑에서 계산하는 바와 같이 exclude 목록이 된다. 교집합 연산을 위해 점(.) 표시를 사용하고 차 연산을 위해 마이너스(−) 표시를 사용한다. b. 멀티캐스트 그룹 228.24.21.4는 두 가지 include 목록을 가진다. 결과는 아래에서 계산하는 바와 같이 include 목록이다. 합 연산을 위해 플러스(+) 표시를 사용한다. 그림 12.12는 인터페이스 상태를 보여준다.
인터페이스 상태(Interface state)
변경 상태 보고 보내기
라우터 상태
일반 질의 보고와 관련된 상태의 변화
일반 그룹 지정과 그룹과 송신자 지정보고와 관련됨 상태의 변화
최대 응답 시간 계산
12-4 멀티캐스트 라우팅 IGMP에 의해 모아진 정보들이 멀티캐스트 라우팅 프로토콜에 의해 다른 라우터들에게 어떻게 전달되는지를 볼 것이다. 그러나 그 전에 먼저 모든 멀티캐스트 프로토콜에 공통인 최적 라우팅의 개념을 살펴볼 것이다. 그리고 그 후 멀티캐스트 라우팅 규약의 개요에 대해서도 알아볼 것이다.
Topics Discussed in the Section Optimal Routing: Shortest Path Trees
유니캐스트 라우팅에서 도메인의 각 라우터는 가능한 목적지로의 최단 경로 트리를 정의하는 테이블을 가지고 있다. Note 유니캐스트 라우팅에서 도메인의 각 라우터는 가능한 목적지로의 최단 경로 트리를 정의하는 테이블을 가지고 있다.
유니캐스트 라우팅에서 최단 경로 트리
path tree for each group. Note In multicast routing, each involved router needs to construct a shortest path tree for each group.
멀티캐스트 라우팅에서 각 관련된 라우터 들은 각각의 그룹에 대해 하나의 최단 경로 트리를 구성할 필요가 있다. Note 멀티캐스트 라우팅에서 각 관련된 라우터 들은 각각의 그룹에 대해 하나의 최단 경로 트리를 구성할 필요가 있다.
송신자-기반 트리 접근 방법
Note 그룹 공유 트리 방법에서는 오로지 코어 라우터만이 각 그룹에 해당하는 최단 경로 트리를 가지게 되며 멀티캐스트 라우팅에 참여하게 된다.
그룹-공유(Group-shared) 트리 접근방법
12-4 라우팅 프로토콜 지난 몇 년간 몇 가지 멀티캐스트 라우팅 프로토콜이 나타났다. 이 프로토콜 중 일부는 유니캐스트 라우팅의 확장이고 몇 몇은 완전히 새로운 것이다. 이번 장의 나머지 부분에서는 이러한 프로토콜을 살펴볼 것이다. 그림 12.21은 이 프로토콜의 분류법을 보여준다.
Topics Discussed in the Section Multicast Link State Routing: MOSPF Multicast Distance Vector: DVMRP Core-Based Tree: CBT Protocol Independent Multicast: PIM
멀티캐스트 라우팅 분류
멀티캐스트 링크 상태 라우팅은 송신자 기반의 트리 방법을 사용한다. Note 멀티캐스트 링크 상태 라우팅은 송신자 기반의 트리 방법을 사용한다.
플러딩은 패킷을 브로드캐스트하나 시스템에 루프를 발생할 수 있다. Note 플러딩은 패킷을 브로드캐스트하나 시스템에 루프를 발생할 수 있다.
RPF(reverse path forwarding)
Note RPF는 플러딩 절차에서 루프를 제거한다.
RPF 문제점
Figure 12.24 RPM versus RPB
Note RPB creates a shortest path broadcast tree from the source to each destination. It guarantees that each destination receives one and only one copy of the packet.
Figure 12.25 RPF, RPB, and RPM
Note RPM adds pruning and grafting to RPB to create a multicast shortest path tree that supports dynamic membership changes.
Figure 12.26 Group-shared tree with rendezvous router
Figure 12.27 Sending a multicast packet to the rendezvous router TCP/IP Protocol Suite
Note In CBT, the source sends the multicast packet (encapsulated in a unicast packet) to the core router. The core router decapsulates the packet and forwards it to all interested interfaces.
PIM-DM is used in a dense multicast environment, such as a LAN. Note PIM-DM is used in a dense multicast environment, such as a LAN.
However, it is independent from the underlying unicast protocol. Note PIM-DM uses RPF and pruning/grafting strategies to handle multicasting. However, it is independent from the underlying unicast protocol.
PIM-SM is used in a sparse multicast environment such as a WAN. Note PIM-SM is used in a sparse multicast environment such as a WAN.
PIM-SM is similar to CBT but uses a simpler procedure. Note PIM-SM is similar to CBT but uses a simpler procedure.
12-6 MBONE Multimedia and real-time communication have increased the need for multicasting in the Internet. However, only a small fraction of Internet routers are multicast routers. Although this problem may be solved in the next few years by adding more and more multicast routers, there is another solution for this problem. The solution is tunneling. The multicast routers are seen as a group of routers on top of unicast routers. The multicast routers may not be connected directly, but they are connected logically.
Figure 12.28 Logical tunneling
Figure 12.29 MBONE