Internet Group Management Protocol (IGMP) Chapter 10 Internet Group Management Protocol (IGMP)
CONTENTS GROUP MANAGEMENT IGMP MESSAGES IGMP OPERATION ENCAPSULATION IGMP PACKAGE
멀티캐스팅 One-to-many 통신 주식 중개인이 주식 가격 변동 동시 전달 여행사가 취소된 여행 정보 전달 원격 학습(distance learning) VOD(Video on Demand)
멀티캐스팅 멀티캐스트 주소 32 비트 중 1110 으로 시작되는 D 클래스 주소 2 억 5 천 만개 이상의 주소 배정(28 비트) 목적지 주소로만 사용 Group id라고도 함 D클래스 주소
네트워크 계층에서 IGMP 위치
GROUP MANAGEMENT 10.1
10.1 그룹 관리 IGMP 그룹 멤버쉽을 관리하는 프로토콜 멀티캐스트 라우터가 그룹 멤버들의 리스트를 생성하고 갱신 멀티캐스트 라우터에게 네트워크에 연결된 호스트와 라우터들의 멤버쉽 상태 정보 제공
10.2 IGMP 메시지 IGMP 는 그룹관리 프로토콜이다. 이것은 멀티캐스트 라우터가 인터페이스에 관련된 멤버의 리스트를 생성하고 갱신하는 것을 돕는다.
IGMP MESSAGES 10.2
10.2 IGMP 메시지 IGMP 메시지 유형
10.2 IGMP 메시지 IGMP 메시지 형식
10.2 IGMP 메시지 메시지 형식 유형(type) : 메시지 유형 IGMP 유형 필드 최대 응답시간(maximum response time) : 질의가 응답되어야 할 시간 검사합(checksum) : 8바이트 메시지에 대한 계산 그룹 주소(group address) : 질의 메시지- 0, 그 밖의 메시지 - groupid Type Value General or Special Query 0x11 or 00010001 Membership Report 0x16 or 00010110 Leave Report 0x17 or 00010111
IGMP OPERATION 10.3
10.3 IGMP 동작 한 지역(local)내에서만 동작
10.3 IGMP 동작 그룹 가입 (joining) 그룹 멤버쉽 모니터링 (monitoring) 그룹에 가입하고자 하는 요청을 라우터에 보고 그룹 멤버쉽 모니터링 (monitoring) 멤버쉽에 관한 질의 메시지를 보내서 응답을 기다린다 멤버쉽 연속 (member continuation) 계속해서 유지하기 원하는 보고 메시지 그룹 탈퇴 (leavinig) 탈퇴에 대한 응답메시지를 보내지 않음
10.3 IGMP 동작 IGMP에서 멤버쉽 보고는 두 번 보내진다. 그룹 가입(Group Join) 멤버쉽 보고(Membership Report) IGMP에서 멤버쉽 보고는 두 번 보내진다.
10.3 IGMP 동작 탈퇴 보고(Leaving Report)
일반 질의 메시지는 특정 그룹을 정의하지 않는다. 10.3 IGMP 동작 일반 질의 메시지는 특정 그룹을 정의하지 않는다.
10.3 IGMP 동작 일반적인 질의 메시지(주기적으로 125초 간격)
10.3 IGMP 동작 Example 1 그림 10.8에 보인 바와 같이 네트워크 내에 3개의 호스트가 있다고 가정하자 시각 0에 질의 메시지가 수신되었다. 각 그룹의 난수 지연 시간은 1/10초 단위이고 그룹 주소 옆에 있다. 보고 메시지의 순서를 보여라.
10.3 IGMP 동작 예제 1
10.3 IGMP 동작 Solution 사건들은 다음의 순서로 발생한다. 시각 12: 호스트 A 내 228.42.0.0의 타이머가 만료되어 멤버쉽 보고가 보내지고 이 메시지를 받은 라우터와 호스트 B를 포함한 모든 호스트가 이 메시지를 받고 호스트 B는 228.42.0.0에 대한 타이머를 취소한다. 시각 30: 호스트 A내 225.14.0.0의 타이머가 만료되어 멤버쉽 보고가 보내지고 이메시지를 받은 라우터와 호스트 C를 포함한 모든 호스트가 이 메시지를 받고 호스트 C는 225.14.0.0에 대한 타이머를 취소한다.
10.3 IGMP 동작 Solution (Continued) 시각 70: 호스트 C 내 230.43.0.0의 타이머가 만료되어 멤버쉽 보고가 보내지고 이 메시지를 받은 라우터와 호스트 A를 포함한 모든 호스트가 이 메시지를 받고 호스트 A는 230.43.0.0에 대한 타이머를 취소한다. 각 호스트가 자신의 리스트 내의 모든 그룹에 대한 보고를 보내면 7개의 보고가 필요하였을 것이나 위에서 설명한 방법에서는 4개의 보고만 전송된다.
ENCAPSULATION 10.4
10.4 캡슐화 IGMP 패킷의 캡슐화
10.4 캡슐화 IGMP 패킷을 수송하고 있는 IP 패킷의 TTL필드 값은 1이다. 프로토콜 필드, TTL 필드, 목적지 IP 주소 IGMP 패킷을 전달하고 있는 IP 패킷의 프로토콜 필드의 값은 2이다. IGMP 패킷을 수송하고 있는 IP 패킷의 TTL필드 값은 1이다.
10.4 캡슐화 IGMP 패킷의 캡슐화 IGMP 메시지 프로토콜 값 : 2 멀티캐스트 주소 224.0.0.1 을 사용하여 질의 메시지를 보낸다 보고 메시지를 멀티캐스트 주소가 목적지 주소가 된다 캡슐화 될 때 TTL 값 : 1 – 범위가 LAN 이기 때문
IP Destination Address 10.4 캡슐화 목적지 IP 주소 Type IP Destination Address Query 224.0.0.1 All system on this subnet Membership Report The multicast address of the group Leave Report 224.0.0.2 All routers on this subnet
10.4 캡슐화 데이터 링크 계층 클래스 D의 물리주소 매핑 물리 멀티캐스트 주소를 지원하는 경우
10.4 캡슐화 터널링(Tunneling) 물리 멀티캐스트를 지원하지 않는 네트워크를 통하여 멀티캐스트 패킷 전달
IGMP PACKAGE 10.5
10.5 IGMP 설계 응용 계층(Application Layer)
10.5 IGMP 설계 그룹 테이블 타이머 집합 Group-join Module Group-leaving Module Input Module Output Module
10.5 IGMP 설계 그룹 테이블 프로세스를 멤버로 갖는 멀티캐스트 주소 정보 상태(State) : FREE, DELAYING, IDLE 인터페이스 번호 : 패킷이 송수신되는 인터페이스 그룹 주소 : 그룹 멀티캐스트 주소 참조 계수 : 그룹과 연관된 프로세스 수 State: Free, Delaying, Idle Reference Count: Number of processes interested
10.5 IGMP 설계 타이머(Timer) DELAYING 상태에 있는 각 엔트리는 보고 전송을 관장하는 타이머 운영 각 타이머는 임의의 선택 만료 시간을 가지고 있어서 시간이 다 되면 신호가 출력 모듈에 전달되어 보고 패킷을 보냄
10.5 IGMP 설계 그룹 가입 모듈 Receive: a request from a process to join a group 1. Look for the corresponding entry in the table. 2. If (found) 1. Increment the reference count. 3. If (not found) 1. Create an entry with reference count set to one. 2. Add the entry to the table. 3. Inform the data link layer to update its configuration table. 4. Set the state to DELAYING. 5. Start a timer. 6. Return.
10.5 IGMP 설계 그룹 탈퇴 모듈 Receive: a request from a process to leave a group 1. Look for the corresponding entry in the table. 2. If (found) 1. Decrement the reference count. 2. If (reference count is zero) 1. If (any timer for this entry) 1. Cancel the timer. 2. Change the state to FREE. 3. Return.
10.5 IGMP 설계 입력 모듈 Receive: an IGMP message 1. Check the message type. 2. If (query) 1. Start a timer for each entry in the table with the state IDLE. 2. Change each IDLE state to DELAYING state. 3. Return. 3. If (membership) 1. Look for the corresponding entry in the table. 2. If (found and state is DELAYING) 1. Cancel the timer for this entry. 2. Change the state to IDLE. 4. Return.
10.5 IGMP 설계 출력 모듈 Receive: a signal from a timer or a request from joining or leaving module 1. If (found and state is DELAYING) 1. Create a membership report. 2. Reset the state to IDLE. 2. If the message comes from a timer