728x90

ICMP(Internet Control Message Protocol)

  • 오류에 관한 보고 기능 및 네트워크 상태 진단 기능을 통해 IP를 보조하는 기능 수행
    • IP 패킷이 정상적으로 목적지에 전달되지 못할 경우
    • 원하는 서비스 포트가 존재하지 않는 경우
  • 오류 보고 메시지 : 라우터나 호스트에서 IP 패킷을 전달할 때 문제가 발생하였을 경우 사용
  • 네트워크 진단 기능 : 라우터나 네트워크에 대한 정보를 얻고자 할 때 사용

 ICMP 패킷 포맷

  • IP 헤더의 프로토콜 필드값을 1로 설정하여 캡슐화
  1. 메시지 타입 필드 : ICMP 메시지 종류 기술
  2. 코드 필드 : 메시지 타입에 따라 세분화할 필요 시 사용
  3. 체크섬 필드 : ICMP 메시지에 대한 체크섬
  4. 메시지 의존 필드 : 메시지 타입에 따라 추가적인 헤더 정보 포함 가능
  5. 메시지 정보 필드 : 메시지 타입에 따라 전달될 정보 정해짐

 

1. 목적지 도달 불가 메시지(Destination Unreachable Message)

  • 패킷이 중도 폐기될 때 사용되는 메시지
  • 1️⃣ 메시지 타입 필드 값 : 3
  • 2️⃣ 코드 필드 : 전송 실패 정보 기록
  • 5️⃣ 정보 필드 : 폐기되는 패킷의 헤더와 데이터의 상위 8 바이트 저장
    • 패킷 헤더에서 최종 목적지와 패킷이 폐기된 위치를 알 수 있음
  •  

2. 시간 초과 메시지(Time Exceeded Message)

  • 패킷이 목적지에 전달되기 전에 시간 초과로 폐기되는 경우 사용
  • 미리 정해둔 패킷 이동 경로보다 실제 이동 경로가 많을 경우 발생
  • 패킷을 단편화하여 보낼 때 재결합 시간(보통 미디어 데이터에서 많이 발생 - 싱크 불일치)
  • 시간 초과 메시지는 Traceroute 명령에서 주로 사용
  • 💡 **Traceroute 명령 :** 목적지로 이동할 때 패킷이 실제로 사용하는 경로를 검색하는 데 사용
  • 1️⃣ 메시지 타입 필드 값 : 11
  • 2️⃣ 코드 필드
    • TTL 초과 : 0
    • 재결합 시간 초과 : 1

 

3. 파라미터 문제 메시지(Parameter Problem Message)

  • 패킷 헤더 부분에 문제가 발생한 경우 사용되는 메시지
  • 1️⃣ 메시지 타입 필드 값 : 12
  • 2️⃣ 코드 필드
    • 헤더 오류 : 0
    • 원하는 필드가 없는 경우 : 1
  • 4️⃣ 메시지 의존 피드
    • 상위 8 비트는 포인터로써 사용되고 패킷 헤더의 어떤 부분에 문제가 발생했는지를 가리킴

 

4. 송신 억제 메시지(Source Quench)

  • 패킷 흐름을 위해 사용되는 메시지 (IP의 흐름 제어 방법)
  • 과도한 패킷의 유입으로 라우터에서 패킷을 버려야 할 때 송신 호스트로 패킷의 폐기를 알리기 위해 사용
  • 송신 억제 메시지를 수신한 송신 호스트는 패킷 전송 속도를 늦추게 됨
  • 1️⃣ 메시지 타입 필드 값 : 4
  • 2️⃣ 코드 필드 : 0

 

5. 재지정 메시지(Redirection Message)

  • 라우터가 호스트로부터 수신한 패킷의 송수신 주소를 확인하여 동일 네트워크의 다른 라우터가 라우팅하는 것이 더 효율적이라고 판단할 경우 라우팅 경로 변경을 하도록 해당 메시지 전송
  • 라우터는 수신한 패킷을 재지정된 라우터로 직접 전달함(폐기 ❌)
  • 1️⃣ 메시지 타입 필드 값 : 5
  • 2️⃣ 코드 필드 : 재지정될 라우터의 주소 삽입
  • 4️⃣ 메시지 의존 필드 : 새로운 라우터 주소 지정
  • 5️⃣ 메시지 정보 필드 : 패킷 헤더와 데이터의 상위 8 바이트 포함

 

ICMP 메시지를 사용하지 않는 경우

  • ICMP 메시지를 라우팅 하거나 전달하는 경우
  • 브로드캐스트나 멀티캐스트 패킷인 경우
  • 분할된 패킷 중 처음 패킷이 아닌 경우
  • 송신 주소가 특별한 주소(127.0.0.1 또는 0.0.0.0인 경우)

 

ICMP 쿼리(Query) 메시지

  • 오류가 아닌 네트워크 상황을 파악하기 위해 사용하는 메시지
  • 기본적인 포맷은 ICMP 오류 메시지와 동일하지만 메시지 의존 필드를 식별자순서 번호 필드로 나누어 사용한다.

 

1. 에코 요청과 응답 메시지(Echo Request and Reply)

  • 두 호스트 간 통신이 가능한 지 검사
  • 1️⃣ 메시지 타입 필드 값
    • 요청 : 8
    • 응답 : 0
  • 2️⃣ 코드 필드 : 0
  • 5️⃣ 응답 메시지 데이터 필드 : 요청 메시지의 데이터 필드 값이 그대로 복사

 

2. 타임스탬프 요청과 응답 메시지(Timestamp Request and Reply)

(타임스탬프 : 패킷 전송 시간)

  • 1️⃣ 메시지 타입 필드 값
    • 요청 : 13
    • 응답 : 14
  • 2️⃣ 코드 필드 : 0
  • 5️⃣ 응답 메시지 데이터 필드
    • 출발 시간(Original timestamp) : 송신할 때의 시간
    • 도착 시간(Receive timestamp) : 수신할 때의 시간
    • 전송 시간(Transmit timestamp) : 수신 호스트에서 응답 메시지를 전송할 때의 시간
    • 💡 이때 측정 시간들은 세계 표준시 기준이다.만약, A와 B의 시간이 같지 않다면 신뢰성이 떨어진다.

 

3. 주소 마스트 요청과 응답 메시지(Address Mask Request and Reply)

  • 호스트가 서브넷 마스크 값을 얻을 때 사용하는 메시지
  • 호스트가 아닌 라우터가 응답한다.
  • 1️⃣ 메시지 타입 필드 값
    • 요청 : 17
    • 응답 : 18
  • 2️⃣ 코드 필드 : 0
  • 5️⃣ 응답 메시지 데이터 필드 : 서브넷 마스크 값

 

4. 라우터 요청과 광고 메시지(Router Solicitation and Advertisement)

  • 호스트가 네트워크 정보를 알고 싶을 때 (라우터를 알고 싶을 때)
  • 라우터는 라우팅 정보를 포함한 라우터 광고 메시지를 방송
728x90

'🖥️ Computer Science > Network' 카테고리의 다른 글

[TCP/IP] 라우팅  (0) 2022.01.14
[TCP/IP] 멀티캐스팅  (0) 2022.01.14
[TCP/IP] IP 주소 관리  (0) 2021.10.08
[TCP/IP] IP 패킷 헤더 옵션  (0) 2021.10.08
[TCP/IP] IP 패킷의 구성  (0) 2021.09.20