ICMPv6

위키百科, 우리 모두의 百科事典.

ICMPv6 (Internet Control Message Protocol version 6)은 IPv6 (인터넷 프로토콜 버전 6)用 인터넷 制御 메시지 프로토콜 (ICMP) 具現體이다. IPCMv6는 RFC 4443에 定義되어 있다. [1] ICMPv6는 IPv6의 重要한 部分이며 誤謬 報告와 診斷 機能(예: )을 遂行하고, 앞으로의 變更事項을 具現할 擴張機能을 위한 프레임워크를 가지고 있다.

새로운 ICMPv6 메시지 타입을 定義하는 여러 擴張機能들과 旣存 ICMPv6 메시지 타입을 위한 새로운 옵션들이 揭示되고 있다. 이웃 探索 프로토콜 (NDP)은 IPv6의 노드 探索 프로토콜이며 ARP 의 機能을 代替하고 强化한다. [2] 安全 이웃 探索 (Secure Neighbor Discovery, SEND)은 追加 保安을 提供하는 NDP의 擴張이다. 멀티캐스트 리스너 디스커버리 (MLD)는 直接 附着된 링크 위의 멀티캐스트 리스너를 IPv6 라우터가 探索하기 위해 使用되며 이는 마치 IPv4 에서 인터넷 그룹 管理 프로토콜 (IGMP)을 使用하는 것과 같다. 멀티캐스트 라우터 디스커버리 (MRD)는 멀티캐스트 라우터의 探索을 許容한다.

메시지 타입과 포맷 [ 編輯 ]

ICMPv6 메시지들은 誤謬 메시지와 情報 메시지로 分類할 수 있다. ICMPv6 메시지들은 IPv6 패킷에 依해 傳達되며 이 패킷 안의 ICMPv6의 IPv6 넥스트 헤더 값은 값 58로 設定된다.

ICMPv6 메시지는 헤더와 프로토콜 페이로드로 構成된다. 헤더에는 오직 3個의 필드만을 담고 있다: type (8비트), code (8비트), checksum (16비트). type 은 메시지의 타입을 指定한다. 0~127 사이(high-order 비트는 0)의 값은 誤謬 메시지를 나타내는 反面, 128~255 사이의 값(high-order 비트는 1)은 情報 메시지를 意味한다. code 필드의 값은 메시지의 타입에 따라 달라지며 메시지의 細部 水準을 提供한다. checksum 필드는 ICMP 메시지의 最小限의 水準의 無結成 確認을 提供한다.

ICMPv6 패킷
비트 오프셋 0?7 8?15 16?31
0 Type Code Checksum
32 메시지 本文

타입 [ 編輯 ]

컨트롤 메시지는 type 필드의 값에 依해 識別된다. code 필드는 메시지의 追加 文脈 情報를 提供한다. 一部 메시지들은 ICMP 메시지 타입과 同等한 役割을 遂行한다.

타입 코드
意味 意味
ICMPv6 誤謬 메시지
1 目的地 到達 不可 0 目的地로의 루트가 없음
1 目的地와의 通信이 管理的인 側面에서 禁止됨
2 元本 住所 範圍 超過
3 住所 到達 不可
4 포트 到達 不可
5 元本 住所가 政策의 ingress/egress를 失敗함
6 目的地로의 루트 拒否
7 元本 라우팅 헤더의 誤謬
2 패킷이 너무 큼 0
3 時間 超過 0 電送 詩 홉 制限 到達
1 조각 再組合(fragment reassembly) 時間 超過
4 파라미터 問題 0 問題가 있는 헤더 필드 確認
1 認識할 수 없는 넥스트 헤더 타입 確認
2 認識할 수 없는 IPv6 옵션 確認
100 非公開 實驗
101 非公開 實驗
127 ICMPv6 誤謬 메시지를 위한 擴張을 위해 豫約됨
ICMPv6 情報 메시지
128 0
129 0
130 멀티캐스트 리스너 쿼리 ( MLD ) 0

멀티캐스트 리스너 쿼리 메시지에는 2가지 下位 타입이 있다:

  • 一般 쿼리(General Query): 어느 멀티캐스트 住所들이 附着 링크에서 리스너를 갖고 있는지 알아내기 위해 使用된다.
  • 멀티캐스트 住所 特化 쿼리(Multicast-Address-Specific Query): 特定 멀티캐스트 住所가 附着 링크의 리스너를 가지고 있는지의 與否를 알아내기 위해 使用된다.

이 두 下位 타입들은 멀티캐스트 住所 필드의 內容에 따라 달라지며 이는 RFC 2710의 3.6項에 記述되어 있다

131 멀티캐스트 리스너 리포트 (MLD) 0
132 멀티캐스트 리스너 던 (MLD) 0
133 Router Solicitation ( NDP ) 0
134 Router Advertisement (NDP) 0
135 Neighbor Solicitation (NDP) 0
136 Neighbor Advertisement (NDP) 0
137 리다이렉트 메시지 (NDP) 0
138 라우터 리넘버링 0 라우터 리넘버링 커맨드
1 라우터 리넘버링 結果
255 시퀀스 番號 리셋
139 ICMP 노드 情報 쿼리 0 데이터 필드는 이 쿼리의 主題인 IPv6 住所를 包含한다.
1 데이터 필드는 이 쿼리의 主題인 이름을 包含하며 NOOP의 境遇 비어있다.
2 데이터 필드는 이 쿼리의 主題인 IPv4 住所를 包含한다.
140 ICMP 노드 情報 應答 0 應答 成功. 應答 데이터 필드는 비어있을 수도, 비어있지 않을 수도 있다.
1 應答者가 答辯 提供을 拒否한다. 應答 데이터 필드는 비어있게 된다.
2 應答者에 對한 쿼리의 Qtype을 알 수 없다. 應答 데이터 필드는 비어있게 된다.
141 Inverse Neighbor Discovery Solicitation Message 0
142 Inverse Neighbor Discovery Advertisement Message 0
143 Multicast Listener Discovery ( MLDv2 ) 리포트 ( RFC 3810 )
144 Home Agent Address Discovery Request Message 0
145 Home Agent Address Discovery Reply Message 0
146 Mobile Prefix Solicitation 0
147 Mobile Prefix Advertisement 0
148 Certification Path Solicitation ( SEND )
149 Certification Path Advertisement (SEND)
151 Multicast Router Advertisement ( MRD )
152 Multicast Router Solicitation (MRD)
153 Multicast Router Termination (MRD)
155 RPL 컨트롤 메시지
200 非公開 實驗
201 非公開 實驗
255 ICMPv6 情報 메시지를 위한 擴張을 위해 豫約됨

위의 表는 完全하지 않으며, 割當된 IPCMv6 타입의 完全한 目錄은 이 링크에서 볼 수 있다: IANA: ICMPv6 Parameters .

체크섬 [ 編輯 ]

ICMPv6는 헤더에 16비트 체크섬 을 包含시킴으로써 最小限의 水準의 메시지 無結成 確認을 提供한다. 체크섬은 IPv6 標準에 依據하여 IPv6 헤더의 醫師 헤더 로 始作하여 計算되며 [3] 原本과 到着 住所, 패킷 길이와 넥스트 헤더 필드로 構成되며 後者의 境遇 58이라는 값으로 設定된다. 이 醫師 헤더 뒤에 체크섬은 IPCMv6 메시지와 함께 繼續해나간다. 체크섬 計算은 인터넷 프로토콜 標準에 따라 遂行된다. [4] ICMP 의 IPv4의 計算 方式과는 差異가 있으나 TCP 에서 遂行되는 計算 方式과 비슷하다.

ICMPv6 醫師 헤더
비트 오프셋 0 ? 7 8?15 16?23 24?31
0 元本 住所
32
64
96
128 到着 住所
160
192
224
256 ICMPv6 길이
288 제로(0) 넥스트 헤더

메시지 處理 [ 編輯 ]

IPCMv6 노드가 패킷을 受信하면 메시지의 타입에 依存하는 措置에 着手해야 한다. ICMPv6 프로토콜은 네트워크 部下를 避하기 위해 同一 到着地로 電送되는 誤謬 메시지의 數에 制限을 두어야 한다. 이를테면 노드가 誤謬가 있는 패킷의 포워드를 繼續하는 境遇 ICMP는 最初 패킷에 誤謬 信號를 보내고 週期的으로 이 作業을 遂行하며, 여기에는 最小限의 固定 週期라든지 固定된 네트워크 最大 負荷가 設定된다. ICMP 誤謬 메시지는 다른 ICMP 誤謬 메시지에 對한 應答에 對해 送信해서는 안 된다.

各州 [ 編輯 ]

  1. RFC 4443 , Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
  2. RFC 3315 , § 3
  3. RFC 2460, Internet Protocol, Version 6 (IPv6) Specification , Section 8.1 ( Upper-Layer Checksum ), S. Deering, R. Hinden (December 1998)
  4. RFC 1071 , Computing the Internet Checksum , R. Braden, D. Borman, C. Partridge (September 1988)

外部 링크 [ 編輯 ]