본문 바로가기

IT STUDY/Network

[Network Layer] Ping & ICMP --- 이론 ---

반응형




 

 


 


이번시간에는 네트워크에서 패킷 전송 실패시 보내지는 ICMP와 Ping에 대해서 알아보도록 하겠습니다. 

 

 

 

▶ ICMP(Internet COntrol Message Protocol)이 란?

IP는 신뢰성을 보장하지 않기 때문에 네트워크 장애나 중계 라우터 에러에 대처 할 수 없다. 이러한 문제로 패킷이 네트워크상에 떠도는 것을 방지하기위해 수신측에서 송신측으로 데이터의 사고에 대한 내용을 전달하기 위해 사용하는 프로토콜이 ICMP이다.
     -IP헤더의 Protocol 값 (1)
   

 

그렇다면 헤더에 대해 자세하게 알아보자!!

 

1) ICMP Type
     - ICMP는 크게 질의, 오류보고 2가지로 나누어 진다.

 


질의 

에러보고 

  네트워크 문제 진단 - 타입이 질의일 경우에 코드 값은 의미가 없다.(하지만 특정 질의에선 사용됨)

 문제 발생 시 에러메세지 전달

1.에코 : 0(응답)/8(요청)  
      - 고장 진단의 목적, IP의 동작을 검사(ping 통신이 된다면 L3까지 동작에 문제가 없다는 것이다.)

2.타임 스탬프 : 13(요청)/14(응답)

3.주소 마스크 : 17(요청)/18(응답)

4.
라우트 간청, 광고 : 10(간청)/9(광고)

1.수신처 도달 불가 : 3

2.발신 제한(발신지 억제) : 4

3.라우트 변경(재지정) : 5

4.시간 초과 : 11

5.파라미터 불량(매개변수 문제) : 12





## ICMP Network 진단 type 별 묶음 ##

  Echo Request(8) Reply(0)

1) 연결 테스트  
         - 네트워크 접근성 테스트

2) 선택적 필드  
         (1) 식별자(2byte) :  echo 요청과 응답을 매치시키기 위해 사용되는 그룹 번호

         (2)순서번호(2byte) :echo메세지의 순서를 구분하기 위한 목적 으로 사용

3) 선택적 데이터

 

 타임 스탬프 요청(13) / 응답(14)

1) 시스템간 시간 정보 동기화

2) 선택적 필드  
     (1)식별자 : 한동작을 묶어주는 그룹 번호
     (2)순서번호 : 동작안에서 전달되는 요청과 응답을 매치시키는 번호


3) 선택적 데이터 
     (1) 요청 송신 타임스탬프 = 요청메세지를 전달하는 장비가 메세지를 전달하기 바로 전 시간
     (2) 요청 수신 타임스탬프 = 데이터를 받은 장비가 메세지를 받은 시간
     (3) 응답 송신 타임스탬프 = 응답메세지를 전달하는 장비가 응답메세지를 보내기 바로 전 시간

 

 경로 요청(10) / 광고(9)

1) 라우팅 테이블 확인용

2) 경로 요청
      (1) 선택적 필드 (4byte) = 예약용 (모두 0)
      (2) 선택적 데이터 = 없음

 3) 경로 광고 (9)
     (1) 선택적 필드 
          * 주소 수 (1byte)
          * 주소 크기(1byte)
          * 수명 (2byte) = 유효기간

     (2) 선택적 데이터 = routing table의 경로
         * 경로 주소(4byte)
         * 우선 순위(4byte)

 

 

2) ICMP Code
     - ICMP Code는 목적지 도달 불가 코드, 재지정 코드, 시간 초과 코드, 파라미터 문제 코드 4가지로 나누어진다.

 

  

 

목적지 도달 불가의 경우 코드 값 (type 3)

 2,3번은 목적지 호스트에 의해서만 생성될 수 있고, 나머지는 라우터에 의해서 생성된다.

     
0 : 네트워크에 도달 불가 - 하드웨어 고장등의 이유로 목적지 네트워크에 도달 못한다.(알고는 있지만 현재 시점에서 도달하지 못한다.)

1 : 호스트에 도달 불가 – 하드웨어 고장 등의 이유로 목적지에 도달 못한다.(알고는 있지만 현재 시점에서 도달하지 못한다.)

2 : 프로토콜 도달 불가 – 해당 목적지까지 도착은 했지만 데이터를 전달해야 할 서비스 프로토콜이 동작하지 않고 있어서 전달하지 못한다.

3 : 포트 도달 불가 – 해당 목적지까지 도착은 했지만 데이터가 프로세스로 전송되어야 할 포트가 막혀있어서 전달하지 못한다.

4 : 단편화 불가 – 단편화가 필요하지만 IP헤더의 DF가 1로 설정되어서 단편화가 일어나지 않아서 데이터를 전달하지 못한다.

5 : 발신지 경로 실패 – 발신지에서 라우팅을 하지 못한다.

6 : 목적지 네트워크를 알 수 없다. – 목적지 네트워크의 경로를 알 지 못한다,

7 : 목적지 호스트를 알 수 없다. : 호스트의 위치를 알 지 못한다.

8 : 발신지 호스트 고립

9 : 목적지 네트워크와 통신이 관리상 이유로 금지

10 : 목적지 호스트와의 통신이 관리상의 이유로 금지

13 : 관리자가 필터를 설치해서 호스트에 도달할 수 없다.

 

유형 4) 송신 속도 낮춤              
- 지연발생시 라우터에서 출발지의 데이터 전달 속도를 제어

유형 11) 시간초과 메세지           
-  IP의 TTL값이 만료되었을 때

유형 5) 재지정 코드(redirect message)        
- 경로 재설정을 지시
- 선택적 필드(4byte) ->변경될 G/W주소  

유형 12) 파라미터 문제 코드       
- 헤더의 필드값이 잘 못 들어가서 목적지에서 해석하지 못할
- 선택적 필드(1byte:PTR) = 원본 IP패킷에서 필드값이 잘못된 부분을 주소로 나타냄 

 


 

 

▶ Ping 이 란?

ICMP Echo Request 메세지를 전송하여 목적지 시스템으로 부터 ICMP Echo Reply 메세지로 응답을 받는데 걸린 시간을 측정함으로써 네트워크 연결을 검사 할 수 있다. (목적지까지 연결이 유효한지 확인)
    - Ping Test는 command 창에 ping [목적지 IP or 목적지 주소) 형식으로 사용 가능 

 

[Windows CMD에서 사용 모습]

 

 

 

 

 

 

 

 

 

 

 











반응형