본문 바로가기
네트워크/네트워크 이론

14. 인터넷 제어 메시지 프로토콜(ICMP)

by zhsus 2023. 1. 18.
반응형

☞ 이 글은 Private 클라우드를 활용한 네트워크 & 서버 보안운영 관리 교육을 받으면서 정리한 내용입니다.

#1 ICMPv4

>> ICMP의 필요성

  • IP
    • 비연결형으로 오류보고와 오류수정 기능이 없음
    • 호스트와 관리자를 위한 매커니즘이 없음
  • 호스트와 관리자를 위해 필요한 것을 보완하기 위하여 설계됨
호스트 관리자
라우터나 다른 호스트의 동작 여부 확인 필요 다른 호스트나 라우터로부터의 정보획득 필요

>> 네트워크 계층에서의 ICMP 위치

  • ICMP는 네트워크 계층 프로토콜
  • 직접 데이터 링크 계층으로 데이터를 전달하지 않음
  • 메시지는 IP 데이터그램에 캡슐화 됨

>> ICMPv4 패킷 형식

  • IP 헤더의 프로토콜 번호 : 1번
  • ICMP 헤더 : 8바이트
  • ICMP 필드값
    • Type : ICMP 메시지 종류 표시
    • Code : 메시지 타입에 따라 세분화 할 때 사용
    • Checksum : ICMP 메시지에 대해 체크섬을 계산한 값
    • Rest of header : 메시지 타입에 따른 추가적인 헤더 정보

ICMPv4 패킷 형식

>> ICMPv4 메시지 유형

오류보고 메시지 질의 메시지
라우터나 목적지 호스트가 IP 패킷을 처리하는 도중 탐지하는 문제를 보고 호스트나 네트워크 관리자가 라우터나 호스트로부터 특정 정보를 획득하는데 사용
Category Type Message
Error-reporting message 3 Destination unreachable
4 Source quench
11 Time exceeded
12 Parameter problem
5 Redirection
Query
messages
8 or 0 Echo request or Reply
13 or 14 Timestamp request or Reply

>> 오류보고 메시지 개요

  • IP는 오류제어나 오류보고가 없는 비신뢰성
  • ICMP는 오류를 수정하지 않고 오류보고만 수행 - 오류수정은 상위계층에서만 수행
  • ICMP는 최초 발신지로 발신지 IP 주소를 사용하여 오류 메시지를 보고

>> 오류보고 메시지가 생성되지 않는 겨우

  • ICMP 오류 메시지를 전달하는 데이터그램
  • 처음 단편이 아닌 단편화된 데이터그램
  • 멀티캐스트를 가진 데이터그램
  • 127.0.0.1(루프 백 주소)와 0.0.0.0 같은 특별한 주소를 가진 데이터그램

>> 오류보고 메시지 유형

  • 목적지 도달 불가(Type : 3)
    • 데이터그램 폐기
      1. 라우터가 데이터그램을 전달할 수 없을 때
      2. 호스트가 데이터그램을 배달할 수 없을 때
    • 라우터나 목적지 호스트는 송신지 호스트에게 목적지 도달 불가 메시지를 보냄
  • 발신지 억제(Type : 4)
    • 비신뢰성인 IP를 보완하여 흐름제어와 혼잡제어 기능과 유사한 기능을 추가하기 위하여 설계
    • 혼잡으로 인해 데이터그램이 폐기하면 라우터나 호스트는 송신자에게 발신지 억제 메시지를 송신
    • 데이터그램이 "폐기 되었음"과 경로상에 "혼잡이 발생했음"을 알림
  • 시간초과(Type : 11)
    • 경로를 따라 라우터(홉)를 거쳐서 패킷의 TTL 필드가 0이 되어 데이터그램이 폐기될 때 : 라우터가 시간 초과 메시지를 원래 발신지로 보냄
    • 최종 목적지가 정해진 시간내에 모든 단편을 받지 못했을 때 : 이미 수신된 단편은 폐기, 시간 초과 메시지를 원래의 발신지로 보냄
  • 재지정(Type : 5)
    • 호스트가 데이터그램을 다른 라우터에게 보낼 경우 : 호스트의 라우팅 데이블을 갱신할 수 있도록 라우터는 호스트에게 재지정 메시지를 보냄

>> 질의 메시지 개요

  • 질의 메시지 기능
    • 네트워크 문제 진단 기능
    • 송신 노드가 메시지를 보내면 수신 노드가 특정한 형식에 따라 응답

질의 메시지 종류

>> 질의 메시지 유형

  • 에코 요청 응답
    • 고장진단을 목적으로 설계
    • 에코 요청과 응답은 IP계층에서 상대방과 통신이 되는지 확인하기 위해서 사용
  • 타임스탬프 요청 응답 : 발신지와 목적지 사이에 왕복시간 측정을 위하여 사용
  • [예시] 타임스탬프의 요청 응답
원래 타임스탬프 : 40
전달 타임스탬프 : 60
수신 타임스탬프 : 58
패킷 도착시간 : 68일 때
송신시간(58-40)=18ms
수신시간(68-60)=8ms

그러므로, 왕복시간 = 26ms
(왕복시간 = 송신시간 + 수신시간)

 

#2 ICMPv6

>> ICMPv6의 개요

  • IPv4에서의 ARP, IGMP, ICMP 기능을 ICMPv6에서 수용
  • 오류를 보고하고, 정보를 얻으며, 이웃을 검사하고, 멀티캐스트 통신을 관리

>> ICMPv6 메시지 분류

  • 오류 메시지(Error Messages)
    • 목적지 도달불가(Destination unreachable)
    • 너무 큰 패킷(Packet too big) : 라우터에서 MTU 보다 큰 패킷
    • 시간 초과(Time exceeded(TTL 0))
    • 매겨변수 문제(Parameter problem) : 잘못된 헤더
  • 정보 메시지(Informational Messages)
    • 두 장치 간에 통신이 가능한지 확인하기 위해 사용
    • 에코 요구 메시지, 에코 응답 메시지
  • 이웃 탐색 메시지(Neighbor Discovery Messages)
    • 호스트들이 패킷을 전송하려는 이웃 라우터를 찾기 위해 사용
    • 라우터 요청 메시지, 라우터 광고 메시지, 이웃 광고 메시지 등
  • 그룹 멤버십 메시지(Group Membership Messages)
    • IGMP 기능을 담당
    • 멤버십 질의 메시지, 멤버십 보고 메시지
반응형

'네트워크 > 네트워크 이론' 카테고리의 다른 글

16. 주소 변환 프로토콜(ARP, RARP)  (0) 2023.01.18
15. 인터넷 그룹관리 프로토콜(IGMP)  (0) 2023.01.18
13. IPv6 패킷 구조  (1) 2023.01.18
12. IPv6 주소 특징  (0) 2023.01.18
11. IPv6 주소 체계  (0) 2023.01.18