티스토리 뷰

책 : Data & Computer Communication - 제 10판 -

저자 : William Stalling

< 제 21장 인터넷 프로토콜 > pg 691 인터네트워크 동작 ( 일부 )

1.멀티캐스팅

2.IGMP ( 인터넷 그룹 관리 프로토콜 )

 


 

  1. 멀티캐스팅

IP 주소는 특정 네트워크 호스트와 관련이 있지만, 하나 또는 여러 네트워크에 있는 호스트들의 그룹에 대한 주소도 허용한다. 이런 호스트 그룹의 주소를 멀티캐스트 주소 ( multicast address ) 라고 하며, 패킷을 이런 멀티캐스트 그룹으로 전송하는 것을 멀티 캐스팅이라고 한다. ( IPv4 의 Class D 에 해당한다. 13번 글의 그림 참조 )

1) 멀티캐스트의 응용

  • 비디오, 오디오 서비스
  • 화상 회의 : 어떤 구성원이 전송한 것을 동시에 모든 다른 구성원에게 전송
  • 데이터 베이스 : 복제된 파일이나 DB의 복사본을 동시에 갱신
  • 분산처리 : 중간 결과 값을 모든 대상에게 전달
  • 실시간 작업그룹

2) 멀티캐스팅의 동작과정과 필요성

먼저 동작과정을 보면, LAN 프로토콜과 IEEE 802 는 MAC 레벨의 멀티캐스트 주소를 지원한다.

멀티캐스트 주소를 가진 패킷이 LAN 세그먼트로 전송되면, 해당하는 멀티캐스트 그룹의 구성원은 주소를 확인하고 받아들인다. 이 경우에, 오직 하나의 패킷이 전송된다.

멀티캐스팅의 필요성을 알기전에 브로드캐스트와 다중 유니캐스트에 대해 알아볼 필요가 있다.

브로드캐스트란, 서버가 멀티캐스트 그룹 구성원의 위치를 모를 때, 모든 구성원들이 패킷을 수신받게 하기 위해 네트워크의 최소 비용 경로로 패킷의 복사본을 전부 뿌리는 방식이다. 쉽게 말해서 나와 연결되어 있는 모든 네트워크에 패킷을 전부 발송하는 것이다.

다중 유니캐스트는 발신지 시스템이 멀티캐스트 그룹의 구성원의 위치를 알고있다고 가정한다. 발신지는 멀티캐스트 주소와 멀티캐스트 그룹의 구성원의 네트워크 주소를 연결하는 표를 가진다. 발신지는 그룹의 그성원을 가지고 있는 네트워크로만 패킷을 전송한다.

이러한 브로드캐스트와 유니캐스트 전략은 불필요한 원본 패킷의 복사본을 생성하기 때문에 효율성이 떨어진다.

멀티캐스트 전략에서는 다음과 같은 방법을 사용한다.

발신지는 멀티캐스트 그룹의 구성원을 포함하고 있는 각 네트워크로의 최소 경로를 결정하고, 이를 스패닝 트리로 나타낸다. 그리고 이 스패닝 트리를 따라서 하나의 패킷을 전송하고, 패킷은 스패닝 트리의 분기점에 있는 라우터들에게서 복제된다.

브로드캐스트, 다중 유니캐스트, 멀티캐스트에 대해 아래 그림을 통해 더 쉽게 이해할 수 있다.

3) 멀티캐스팅의 요구사항

  • 멀티캐스트 주소를 식별하기 위한 협약 ( IPv4 의 클래스 D )
  • 각 노드는 IP 멀티 캐스트 주소를 그룹의 구성원을 포함하는 네트워크의 목록으로 변환하는 기능 탑재
  • 라우터는 IP 멀티캐스트 주소 -> 네트워크 멀티캐스트 주소 로 변환할 수 있어야 한다.
  • 임의의 호스트가 특정 멀티캐스트 그룹에 가입/탈퇴하는 기능 ( IGMP )
  • 라우터 끼리의 정보교환 ( 어떤 네트워크가 주어진 멀티캐스트그룹 구성원을 포함하고 있는가, 이 구성원을 포함하는 네트워크로의 최단 경로를 찾기 위한 정보 )
  • 구성원으로의 최단 경로를 찾기위한 알고리즘
  • 멀티캐스트 트래픽에 대한 처리 기능

 


 

 

2. IGMP ( 인터넷 그룹 관리 프로토콜 )

호스트와 라우터가 멀티캐스트 그룹 구성원 정보를 LAN 을 통해 교환하기 위해 사용한다. IGMP 는 다수의 호스트와 라우터 사이에서 정보를 교환하는 효율적인 기술을 제공하는데, 주요한 동작은 다음 두 가지이다. 모든 IGMP 메시지는 IP 데이터그램을 통해 전송된다.

  • 호스트가 라우터에게 주어진 멀티캐스트 주소의 멀티캐스트 그룹에 참여/탈퇴 메시지를 보냄
  • 라우터가 주기적으로 어떤 호스트가 어느 멀티캐스트 그룹에 관심이 있는지 확인

1 ) IGMP 메시지 유형

현재 IGMP 는 두가지 메시지 유형을 정의하는데 (구성원자격) '질의' 와 '보고' 이다.

질의 메시지의 경우 멀티캐스트 라우터가 보내며, 세가지 유형이 존재하는데 이는 일반 질의, 그룹지정 질의, 그룹과 발신지 지정질의 이다. 일반의 경우 임의의 구성원을 가진 그룹이 어떤 것인지 알아보기 위해, 그룹지정의 경우 특정 그룹이 배속된 네트워크에서 임의의 구성원을 가지고 있는지 알아보기 위해, 그룹과 발진지 지정 질의는 어떤 장치가 패킷을 수신하려고 하는지 알기 위해 사용된다.

셋 다 목적은 그룹에 대한 정보를 얻기 위함이며. 호스트에게 전달되는 메시지 이다. '보고' 는 질의에 대한 응답으로 호스트가 라우터에게 회신하는 메시지이다.

2) IGMP 헤더

  • Type ( 유형 ) : 메세지의 유형 ( 질의 or 보고 ) 를 결정 - 0x11 = 질의, 0x16 = 보고, 0x17 = 탈퇴와 관련됨
  • 최대 응답 코드(시간) ( Max Response Time ) : 질의 메시지에서만 사용되며, 질의에 대한 보고 메시지가 전송되어야 하는 최대 응답 시간을 나타낸다. 이 값을 조정해 탈퇴 지연 시간 조절이 가능하다.

* 탈퇴 지연 시간 : 특정 그룹에서 마지막 호스트가 탈퇴한 시간 과 라우팅 프로토콜이 이 사실을 인지한 시간 간의 차이

  • 그룹 주소 ( Group Address ) : 질의 메시지는 전부 0 으로 채우고, 보고 메시지에서는 호스트가 가입을 원하는 그룹 주소를 표기
  • S flag : 1로 설정된 경우, 수신 멀티 캐스트 라우터에게 질의를 들을 떄 수행하는 정상적인 타이머 갱신을 하지 않는다.

이 외에도 헤더에 많은 기능이 포함되어 있는데, 아래 사진에 정리되어 있다.

맨 위 글은 QRV ( 질의자의 경고성 변수 ) 에 대한 설명이다.

IGMPv3 헤더의 모습이다.

3) IGMP 동작과정