본문 바로가기
네트워크

[네트워크] 5.6 인터넷 제어 메시지 프로토콜(ICMP)

by Lizardee 2023. 12. 10.

이제 SDN에 대한 이야기를 마쳤다. Network management에 대해 이야기해보자.

  • Network management: 네트워크를 모니터링하고 있다가, 네트워크에 문제가 생기면, 이를 해결하는 것!

 

ICMP: Internet Control Message Protocol

▷ host와 router가 네트워크 상태정보를 교환하는 데에 사용된다.

  • Error reporting: router에서 destination host로 데이터를 전송하다가 문제가 생겼을 때, 이를 source host에게 알린다.
  • ping
    - ping 보낼 때: echo request
    - ping 받을 때: echo reply --> echo reply가 오면, 그 host가 running 상태임을 알 수 있다.
  • TTL expired: TTL은 1 hop을 지날 때마다 감소하는데, TTL이 0이 되어 expired 되었을 때, 이를 source host에게 알린다. --> Traceroute에서 이용!

▷ ICMP 메시지는 IP 위에서 동작하고, 따라서 IP datagram에 의해 전달된다.

 

▷ ICMP 메시지는 Type, Code, 그리고 8바이트의 IP datagram causing error로 구성된다.

ICMP 메시지

 

Traceroute

Traceroute
Traceroute

▶ Traceroute: source host로부터 destination host까지의 경로를 추적하는 프로그램

Traceroute는 ICMP 메시지를 통해 동작한다. 그 자세한 과정을 살펴보자.

  1. Source host --> Destination host: UDP segment를 IP datagram에 실어서 보낸다. 이때, TTL = 1, TTL = 2 ... 이런 식으로 TTL을 점점 늘려가면서 보낸다.
  2. TTL = 1인 UDP segment는 1-hop만큼 떨어진 router에서 expired된다. 이때, source host로 "TTL expired"라는 ICMP 메시지를 보낸다. 이 메시지는 router 이름과 IP 주소를 포함한다. 따라서 source host는 자신과 destination host 사이에 이 router가 있음을 알게 된다.
    또, 자신이 TTL = 1이라는 UDP segment를 보낸 시간과 "TTL expired"라는 ICMP 메시지를 받은 시간의 차이를 통해, 해당 router까지의 RTT(round trip time)를 계산할 수 있다.
  3. TTL은 1씩 증가하기 때문에, 결국에 마지막에는 UDP segment가 destination host까지 전달된다. Destination host에서 expired된 UDP segment는 source host에게 ICMP 메시지를 보낸다. Source host는 ICMP 메시지를 destination host가 보냈음을 알고, UDP segment를 보내는 것을 멈춘다.
    또, destination host까지의 RTT(round trip time)을 계산한다.