ICMP
인터넷제어메시지 프로토콜은 전달을 방해하는 네트워크 문제에 관한 정보를 교환할 수 있는 방법을 IP장비에 제공한다. IP는 전달의 성공을 보장하지 않는 신뢰성 없는 프로토콜이지만 반영구적인 문제로 인하여 데이터 전달이 불가능한 경우 송신자에게 이를 알릴 수 있다는 측면에서 중요하다.
이러한 모델에서 중요한 데이터그램이 분실되면, 상위 계층 프로토콜(TCP와 같은 전송 계층 프로토콜과 TFTP와 같은 응용 계층 프로토콜)은 문제가 발생하였음을 인지하고 이에 대응할것이다. 이론대로라면 중요한 데이터는 언젠가는 전달된다.
ICMP
IP는 오로지 한번에 한 네트워크씩, 한 호스트에서 다른 호스트로 데이터를 이동시키는 역할만을 수행한다.
데이터 그램은 어떤 호스트나 라우터, 네트워크냐에 상관하지 않고 자신의 목적지에 더 가깝게 그 특정 데이터를 전달할 수만 있으면 그 중 가장 적합한 것을 통해서 전달된다.
전송중 반영구적인 실패는 네트워크 자체에 근본적인 문제 혹은 송신자가 네트워크를 사용하려는 방식에 문제가 있는것이므로 송신자에게 즉시 보고하여야 한다.
"반영구적인 문제가 발견되어 송신 시스템에 실패 메시지를 보내는 데 사용되는 프로토콜이 ICMP이다."
더 나아가 ICMP는 네트워크의 일반적인 정보를 교환하거나 네트워크의 특징을 조사하는 데에도 사용될 수 있다. 예를들면 핑 프로그램 이라던지..
사실, ICMP는 본질적으로 각각이 특정한 기능을 제공하는 미리 정의된 메시지들의 집합이다.
어떤 시스템에서 ICMP 메시지를 보내야 한다면, 그 시스템은 사전에서 메시지를 찾아 그 메시지를 위한 코드를 ICMP에 특화된 데이터그램에 저장하고, IP를 통해 실패한 데이터그램을 보낸 시스템에 ICMP 메시지를 보낸다.
송신자는 IP헤더이 Protocol Type 필드를 통해 IP 데이터그램에 ICMP 메시지가 포함된 것을 알고, 메시지와 그 데이터를 살펴본 다음, 추가적인 처리를 위해 메시지를 적합한 프로토콜에 전달한다.
만약 메시지가 ICMP 자체를 위한 것이였다면(예를들어 ping 처럼..) 다른프로토콜을 태우지 않고 직접 처리한다.
'Today I learned' 카테고리의 다른 글
pdf 회고 (0) | 2020.01.03 |
---|---|
[Chrome extension ] 크롬에서 vim 커맨드 사용하기 - vimium (0) | 2020.01.02 |
[네트워크 프로토콜] 연말행사, 함께떠나요 네트워크 프로토콜 파티 2일차 (1) IP (0) | 2019.12.31 |
[네트워크 프로토콜] 연말행사, 함께떠나요 네트워크 프로토콜 파티 1일차 (2) IGMP (0) | 2019.12.30 |
[네트워크 프로토콜] 연말행사, 함께떠나요 네트워크 프로토콜 파티 1일차(1) ARP (0) | 2019.12.30 |
댓글