제 13 장 인터넷 그룹 관리 프로토콜
소개(IGMP) IGMP : Internet Group Management Protocol . 멀티캐스팅을 지원하는 호스트와 라우터에 의해 사용 . 멀티캐스팅 - 정보를 복수의 목적지로 전달 - 클라이언트에 의한 서버의 간청 . IP 계층의 일부 . IGMP 메시지 : IP 데이터그램으로 전송 IP 데이터그램에 IGMP 메시지 캡슐화 (그림 13.1) . 고정 길이 메시지 - 옵션 데이터가 없음 . IP 데이터그램의 프로토콜 필드값 = 2 IP IGMP 헤더 메시지 IP datagram 20 bytes 8 bytes
IGMP 메시지 IGMP 메시지의 필드 형식 [내용] . 버전 =1 . 유형 1 : 멀티캐스트 라우터가 보낸 조회 버전(1) 유형(1-2) 미사용 16비트 검사합 32비트 그룹 주소(클래스 D IP 주소) 8바이트 [내용] . 버전 =1 . 유형 1 : 멀티캐스트 라우터가 보낸 조회 2 : 호스트가 보낸 응답 . 검사합 = ICMP 검사합과 같은 방법 . 그룹 주소 : 클래스 D IP 주소 : 조회 과정에서 그룹 주소는 0으로 설정 : 보고 과정에서 그룹 주소는 보고되는 그룹 주소
IGMP 프로토콜(1) 멀티캐스트 그룹 참여 . 멀티캐스트의 기본 - 호스트의 특정 인터페이스의 멀티캐스트 그룹에 프로세스가 참여 . 특정 인터페이스에서 멀티캐스트 구성원(프로세스) 구성은 동적 . 프로세스가 특정 인터페이스의 멀티캐스트 그룹에 참여 or 떠남 - 멀티캐스팅을 지원하는 호스트의 인터페이스 기능 요구 . 호스트는 “인터페이스”와 “그룹 주소”에 의해 그룹을 정의 - 호스트 = {자신의 프로세스가 속한 모든 그룹의 테이블, 그룹에 속한 프로세스 수의 레퍼런스 카운트}
IGMP 프로토콜(2) IGMP 보고(report)와 조회(query) 사용 [규칙] 1. 첫번째 프로세스가 그룹에 참여할 때, 호스트는 IGMP 보고를 보낸다. 2. 호스트는 프로세스가 그룹을 떠날 때와 마지막 프로세스가 그룹을 때날 때, 보고를 보내지 않는다. 3. 멀티캐스트 라우터는 정기적으로 IGMP 조회를 보낸다. 4. 호스트는 자신의 프로세스가 속하는 각 그룹에 대해 IGMP 보고를 보냄으로써 IGMP 조회에 응답한다. . 멀티캐스트 라우터는 인터페이스 테이블 유지 . 라우터는 그룹에 속하는 프로세스가 존재하는 인터페이스에만 데이터그램 전송
IGMP 프로토콜(3) IGMP 보고와 조회 (그림 13.3) IGMP 보고, TTL=1, 목적지 IP 주소 = 그룹 주소 발신지 IP 주소 = 호스트의 IP 주소 IGMP 조회, TTL=1, IGMP 그룹 주소 = 0 목적지 IP 주소 = 224.0.1 발신지 IP 주소 = 라우터의 IP 주소 호스트 멀티캐스트 라우터
IGMP 프로토콜(4) 구현 표현 . 호스트가 그룹에 참여하기 위해 초기 IGMP 보고를 보낸후 1~10 사이의 랜덤시간를 지나 또다른 보고를 보냄 . 호스트가 라우터로부터 조회를 수신할 때, 바로 응답하지 않고 응답을 스케줄함 . 물리 네트워크상의 모든 호스트가 같은 그룹의 다른 호스트로부터 모든 보고를 수신한다는 것을 알아야 함
IGMP 프로토콜(5) TTL(Time-To-Live) 필드 . TTL 0 : 같은 호스트로 제한 TTL 1 : 동일한 서브넷으로 제한 (default) TTL k : 멀티캐스트 라우터에 의해 전송 . 확장 링 탐색(expanding ring search) - TTL을 1씩 증가 (1,2,3, …) . 224.0.0.0~224.0.0.255 : 하나의 홉보다 먼 멀티캐스트가 필요치 않는 응용에 할당
IGMP 프로토콜(6) 모든 호스트 그룹 . 224.0.0.1 (모든 호스트 그룹 주소) . 물리 네트워크상의 멀티캐스트가 가능한 모든 호스트와 라우터 . 각 호스트는 인터페이스가 초기화될 때, 모든 호스트 그룹을 멀티캐스트가 가능한 인터페이스상의 멀티캐스트 그룹에 참여시킴
예(1) 각 인터페이스의 멀티캐스트 그룹 구성원 보고 sun % netstat –nia Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll le0 1500 140.252.13 140.252.13.33 4370 0 4924 0 0 224.0.0.1 08:00:20:03:f6:42 01:00:5e:00:00:01 s10 552 140 .252.1 140.252.1.29 13587 0 15615 0 0 lo0 1536 127 127.0.0.1 1351 0 1351 0 0
예(2) IP 라우팅 테이블 sun % netstat –rn Routing tables Destination Gateway Flags Refcnt Use Interface 140.252.13 140.252.13.33 UGH 0 32 le0 127.0.0.1 127.0.0.1 UH 1 381 lo0 140.252.1.183 140.252.1.29 UH 0 6 sl0 default 140.252.1.183 UG 0 328 sl0 224.0.0.0 140.252.13.33 U 0 66 le0 140.252.13.32 140.252.13.33 U 8 5581 le0
예(3) 이더넷 인터페이스(140.252.13.33)상의 그룹 224.1.2.3에 참여 sun % netstat –nia 이더넷 인터페이스(140.252.13.33)상의 그룹 224.1.2.3에 참여 sun % netstat –nia Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll le0 1500 140.252.13 140.252.13.33 4374 0 4929 0 0 224.1.2.3 224.0.0.1 08:00:20:03:f6:42 01:00:5e:01:02:03 01:00:5e:00:00:01 s10 552 140 .252.1 140.252.1.29 13862 0 15943 0 0 lo0 1536 127 127.0.0.1 1360 0 1360 0 0
예(4) 호스트가 멀티캐스트그룹에 참가할 때 tcpdump 출력 (그림 13.4) 1 0.0 8:0:20:3:f6:42:1:0:5e:1:2:3 ip 60 sun > 224.1.2.3: igmp report 224.1.2.3 [ttl 1] 2 6.94 (6.94) 8:0:20:3:f6:42:1:0:5e:1:2:3: ip 60:
멀티캐스트 라우터 예 멀티캐스트 라우팅 데몬이 실행되는 동안의 tcpdump 결과 (그림 13.5) 0.0 sun > 224.0.0.4: igmp report 224.0.0.4 0.00 ( 0.00) sun > 224.0.0.1: igmp query 5.10 (5.10) sun > 224.9.9.9: igmp report 224.9.9.9 5.22 (0.12) sun > ss4.0.0.1: igmp query 7.90 (2.68) sun > 224.1.2.3: igmp report 224.1.2.3 8.50 (0.60) sun > 224.0.0.4: igmp report 224.0.0.4 11.70 (3.20) sun > 224.9.9.9: igmp report 224.9.9.9 125.51 (113.81) sun > 224.0.0.1: igmp query 125.70 (0.19) sun > 224.9.9.9: igmp report 224.9.9.9 128.50 ( 2.80) sun > 224.1.2.3: igmp report 224.1.2.3 129.10 (0.60) sun > 224.0.0.4: igmp report 224.0.0.4 247.82 (118.72) sun > 224.0.0.1: igmp query 248.09 (0.27) sun > 224.1.2.3: igmp report 224.1.2.3 248.69 (0.60) sun > 224.0.0.4: igmp report 224.0.0.4 255.29 (6.60) sun > 224.9.9.9: igmp report 224.9.9.9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
요약 멀티캐스팅 . 복수의 수신자에게 메시지를 보내는 방법 . 여러 가지 응용에서 브로드캐스팅보다 우수 (호스트에 요구되는 오버헤드 적음) LAN, WAN . 단일 LAN, 근접하게 연결된 LAN . WAN(Wide Area Network)s : LAN보다 복잡 . [Deering and Cheriton 1990]에서는 공통 라우팅 프로토콜에서 멀티캐스팅을 지원하기 위한 확장된 프로토콜을 제안 . [Casner and Deering 1992]에서는 인터넷의 IETF 회의를 위한 음성 전달 방법과 MBONE(Multicasting backbone)이라는 가상 네트워크에 대하여 서술
TCP/IP 프로토콜 그룹의 각 계층에 위치한 여러 가지 프로토콜 사용자 프로세스 TCP UDP ICMP IP IGMP ARP RARP 하드웨어 인터페이스 전송매체 응용 트랜스포트 네트워크 링크