[OSI 모델 Layer 3] - 3계층의 또 다른 프로토콜인 ICMP / IP 헤더 항목의 "TTL" / Ping, Traceroute

Jin Hur·2022년 1월 17일
0

네트워크(Network)

목록 보기
18/24

reference: "하루 3분 네트워크 교실" / 아미노 에이지

요약

  • 에러 메시지 등을 전송하는 프로토콜이 ICMP이다.
  • ICMP에서는 IP 헤더 + ICMP 메시지를 송신한다.
  • ICMP에는 Query와 Error 두 종류의 메시지가 있다.
  • 타입3의 ICMP는 수신처에 도달하지 못했다는 것을 통지한다.

  • ICMP 타입의 8과 0은 에코 요청에코 응답이다.
  • 에코 요청을 수신한 컴퓨터는 에코 응답을 보낸다.
  • 에코 요청에 대해 에코 응답을 보내오면, 그 상대와 데이터의 송수신이 가능하다는 것을 의미한다.
  • 에코 요청은 ping을 사용하여 실행할 수 있다.
  • TTL에 의해 패킷을 파기한 라우터는 송신처에 Time Exceeded를 보낸다.
  • Time Exceeded를 사용하여, 수신처까지의 경로를 조사하는 명령어가 traceroute이다.

ICMP

3계층의 프로토콜에서는 당연히 IP가 가장 중요한 건 틀림없지만, 3계층의 프로토콜은 IP 이외에도 존재한다. 바로 ICMP(Internet Control Message Protocol) 프로토콜이다.

직역하면 인터넷 제어 프로토콜, 의역하면 에러 보고 프로토콜이다.

1) 호스트 A에서 호스트 B에 IP 패킷을 송신하고 싶지만, 라우터는 호스트 B가 있는 네트워크의 경로를 몰랐다.
2) 라우터는 수신처에 도달할 수 없다는 것을 나타내는 '송신 불능 메시지'를 ICMP로 호스트 A에게 통지한다.

'송신 불능 메시지'를 받은 호스트에서는 각각의 애플리케이션마다 대응이 다르다.
어쨌든, 네트워크 제어/관리에 사용되는 것이 ICMP라는 것이다.

ICMP에서 데이터를 주고 받는 방법은 IP 데이터그램에 ICMP 메시지를 넣는 것이다.
ICMP 메시지는 ICMP에서 사용되는 정보인데 이 정보를 IP 데이터그램의 페이로드에 넣는 것이다. 보통 IP 데이터그램의 페이로드에는 TCP 세그멘트라든지 UDP 데이터그램이 들어가는데 이것들 대신에 ICMP 메시지를 넣어서 보내는 것이다.
=> IP 헤더 + ICMP 메시지

ICMP 종류

ICMP는 크게 2 종류의 메시지가 있다. Query 메시지와 Error메시지.
쿼리는 상태를 조사하는 것(ex, echo 요청)이고, 에러는 그냥 에러를 통지하기 위한 메시지이다.


TTL(Time-to-Live) <- IP 헤더의 항목 중 하나

IP 헤더 항목 중 ICMP와 관련이 있는 항목이 있다. 바로 TTL이란 항목이다. (번역하면 '생존 시간')

IP 데이터그램의 TTL은 라우터를 경유할 때마다 1만큼씩 줄어들고, 0이되면 그 데이터그램은 파기된다. 그래서 IP 데이터그램의 '생존 시간'이라는 것이다.

TTL 항목이 필요한 이유

라우팅 경로 정보에 오류가 일어날 수도 있는데, 예를 들어 정적 라우팅 테이블에서 수동으로 경로를 입력할 때 중계 라우터를 틀리는 경우가 있다. 이런 경우 수신처에 도달하지 않고 어딘가로 가버리든지 또는 같은 장소를 빙글빙글 계속해서 돌게 된다. 그렇게 되면 그 데이터그램은 영원히 네트워크 내에서 계속해서 순환만 하니 방해가 될 뿐이다.

따라서 일정 시간이 경과되면 파기를 해야 한다. 실제로는 시간이 아닌 경유 라우터 수로 판단한다. 즉 TTL로 판단.


에코(Echo)

송신측에서 에코 요청(ICMP 타입 8)을 보내고, 그것을 수신한 컴퓨터는 에코 응답을 돌려 보내는(ICMP 타입 0) 구조를 의미한다.

이 에코 개념을 이용한 ping이라는 '임의의 수신처에게 에코 요청'을 보내는 소프트웨어가 있다. 이 소프트웨어는 네트워크 관리자의 필수품이라 할 수 있다. 이 명령어를 사용하지 않는 관리자가 없다고 단언할 수 있을 정도이다.

에코 요청 -> 에코 응답 완료
=> 송신처와 수신처 간의 데이터를 송수신할 수 있다는 의미

또한 ping을 통해 에코의 요청과 응답에 걸리는 시간을 측정함으로써, 네트워크 상태를 조사할 수도 있다.

Time Exceeded

ICMP 타입 11은 Time Exceeded 메시지이다. 이것은 '시간초과에 의한 패킷 파기'라는 메시지이다.

시간초과는 TTL과 관계가 있다. TTL이라는 생존기간이 끝났을 때 패킷을 파기하는데, 이때 패킷을 파기한 것을 통지하는 메시지가 Time Exceeded이다.

traceroute

이 타입 11 메시지를 사용한 네트워크의 체크용 소프트웨어가 있는데, 바로 traceroute라는 소프트웨어이다.
수신처까지의 경로를 가르쳐 주는 소프트웨어이다. 정확히 말하면 수신처에 도달하기까지 경유하는 라우터를 가르쳐 주는 것이다.

의도적으로 에러 메시지를 받아 그것을 표로 만들어 어느 경로를 거쳐 갔는지 알 수 있는 것.

결론

  • ping: 수신처에 도달했는 지, 네트워크 상태가 어떤지 알려주는 소프트웨어
  • traceroute: 수신처까지의 경로(라우터 경로)를 알려주는 소프트웨어

0개의 댓글

관련 채용 정보