컴퓨터망 6) ICMP

zh025700·2022년 6월 28일
0

컴퓨터네트워크

목록 보기
6/26

컴퓨터망

6. ICMPv4

IPv4는 신뢰할 수 없고 연결이 없는 데이터그램 전송을 제공한다
IP 프로토콜은 source로부터 최종 destination까지 데이터그램을 전달하는 최상의 전송 서비스이다
그러나 오류 제어 부족과 지원 메커니즘 부족이라는 두 가지 결점이 있다
ICMPv4는 이러한 결점을 보완하도록 설계되었다.


Introduction

IP 프로토콜에는 오류 보고 또는 오류 수정 메커니즘이 없다
뭔가 잘못되면 어떡해?
라우터가 최종 목적지에 라우터를 찾을 수 없거나
존속 가능 시간이 0이어서 라우터가 데이터그램을 폐기해야 한다면 어떡해?
만약 최종 destination 호스트가 미리 정해진 시간 내에 모든 조각들을 받지 못했기 때문에 데이터그램의 모든 조각들을 버려야 한다면 어떻게?

ICMP(Internet Control Message Protocol)는 위의 두 가지 결점을 보완하도록 설계되었다

  • ICMP 자체는 네트워크 계층 프로토콜이다
  • 그러나 메시지가 예상대로 데이터 링크 계층으로 직접 전달되지 않음
    • 메시지는 하위 계층으로 이동하기 전에 먼저 IP 데이터그램에 캡슐화

Messages

ICMP 메시지

  • 오류 보고 메시지
    • 라우터 또는 호스트(대상)가 IP 패킷을 처리할 때 발생할 수 있는 문제를 보고
  • 쿼리 메시지
    • 호스트 또는 네트워크 관리자가 라우터 또는 다른 호스트에서 특정 정보를 가져오는 데 도움이 됨
      • 호스트는 네트워크의 라우터를 검색하고 학습할 수 있으며 라우터는 노드가 메시지를 리디렉션하는 데 도움이 될 수 있음
      • 노드는 그들의 이웃을 찾을 수 있음

Message Format

8바이트 헤더와 가변 크기 데이터 영역을 가지고 있다.

  • ICMP type
    • 메시지의 유형을 정의
  • Code
    • 특정 메시지 유형에 대한 이유를 지정
  • Checksum
  • 헤더의 나머지 부분은 각 메시지 유형에 따라 다름
  • 오류 메시지의 데이터 섹션
    • 오류가 발생한 원래 패킷을 찾기 위한 정보를 전달
  • 쿼리 메시지 데이터 섹션
    • 쿼리 유형에 따라 추가 정보를 전달

Error Reporting Message

ICMP는 항상 에러 메시지를 원래 source에 보낸다

  • ip는 unreliable한 프로토콜
    • 에러를 체크해야한다
      • ICMP가 한다
        • 에러를 고쳐주지 않고 알리기만 함
      • ICMP는 source의 IP 주소를 데이터그램의 source에 에러 메세지를 보내기 위해 사용한다

  • 5개의 오류가 다루어진다
  • 에러메시지는 source 데이터 그램 데이터의 처음 8바이트의 IP헤더가 포함된 데이터 영역을 포함한다
    • source 데이터그램 헤더는 오류 메시지를 수신하는 source에 데이터그램 자체에 대한 정보를 제공하기 위해 추가됨
    • 8바이트의 데이터가 포함된 이유는 UDP 및 TCP 프로토콜에 처음 8바이트가 포트 번호(UDP 및 TCP)와 시퀀스 번호(TCP)에 대한 정보를 제공하기 때문
      • 이 정보는 원본이 오류에 대해 프로토콜(TCP 또는 UDP)에 알릴 수 있도록 필요 - ICMP는 오류 패킷을 형성하며, 이는 IP 데이터그램에 캡슐화.

Destination unreachable format

라우터가 데이터그램을 라우팅할 수 없거나 호스트가 데이터그램을 전달할 수 없는 경우, 데이터그램은 폐기되고 라우터 또는 호스트는 데이터그램을 보낸 source 호스트에게 에러 메시지를 보냄

코드가 2, 3 메시지는 destination 호스트만 만들 수 있다
다른 메시지는 라우터만 만들 수 있다

  • 이 에러 메시지는 라우터 or destination 호스트에 의해서만 발동된다

라우터는 패킷 전송을 방해하는 모든 문제를 탐지할 수는 없다

라우터가 이 에러 메시지를 보고하지 않더라도,반드시 데이터그램이 배달되었다는 것을 의미하지는 않는다
예를 들어, 데이터 그램이 이더넷 네트워크를 통해 이동한다면, 이더넷이 어떤 확인 메커니즘도 제공하지 않기 때문에 라우터가 데이터 그램이 목적지 호스트나 다음 라우터에 전달되었음을 알 수 있는 방법은 없다

Source quench format

flow control, congestion control 메커니즘이 IP 프로토콜에는 없다

IP 프로토콜은 무연결 프로토콜이다
데이터그램을 생성하는 source 호스트, 데이터그램을 포워딩하는 라우터 및 데이터그램을 처리하는 destination 호스트 간에는 통신이 없다
이러한 통신 부재의 결과 중 하나는 flow control 및 congestion control의 부재다

이 에러는 IP에 위에 문제 해결을 추가하기 위해 설계되었다
라우터나 호스트는 congestion으로 인해 데이터그램을 폐기할 때 데이터그램의 송신자에게 이 에러 메시지를 보낸다
이 메시지에는 두 가지 목적이 있다
첫째, 데이터그램이 폐기되었음을 소스에 알림
둘째, 경로의 어딘가에 congestion이 있고 source가 전송 프로세스를 quench해야 한다는 것을 경고

이 에러 메시지는 라우터 또는 destination 호스트의 혼잡으로 인해 데이터그램이 폐기되었음을 source에 알린다
congestion이 해소될 때까지 source는 데이터그램의 전송 속도를 늦춰야 한다

congestion으로 인해 폐기된 각 데이터그램에 대해 하나의 메시지가 전송됩니다.

  • 통신상황은 고려안하고 오직 congestion이 오면 폐기한다
    • 상황에 따라 에러메시지가 유용하지 않을수도 있다

Time exceeded message

라우터는 TTL 값이 0인 데이터그램을 폐기하고 source로 이 에러메시지를 보냄

설정된 시간 내에 모든 조각들을 수신하지 않는 경우, 수신된 조각들을 폐기하고 이 에러 메시지를 source로 보냄

  • 첫번째 조각이 destination에 도착하면 timer가 시작된다
    • 모든 조각이 도착하기 전에 시간이 만료되면 destination은 모든 조각들을 폐기하고 에러 메시지를 보낸다

Time exceeded message format

  • code 0은 라우터에 의해서
    • TTL이 0임을 뜻함
  • code 1은 destination에 의해서
    • 모든 조각이 제시간안에 도착하지 않음을 뜻함

Parameter problem

라우터나 destination host에 의해 생성된다

데이터그램의 헤더 부분의 모호성은 데이터그램이 인터넷을 통해 이동할 때 심각한 문제를 일으킬 수 있다
만약 라우터나 destination 호스트가 데이터그램의 어떤 field에서 모호하거나 누락된 값을 발견한다면, 데이터그램을 폐기하고 파라미터 문제 메시지를 source로 다시 보낸다

Parameter problem message format

코드 0

  • 헤더 field에 오류가 있다

코드 1

  • 필요한 옵션이 없다

redirection

  • 라우팅 테이블을 업데이트하는 메시지를 보낸다

호스트 A는 호스트 B에게 데이터그램을 보내고 싶어한다
라우터 R2는 분명히 가장 효율적인 라우팅 선택이지만, 호스트 A는 라우터 R2를 선택하지 않았다
데이터그램이 R1로 이동합니다
R1은 테이블을 참조한 후 패킷이 R2로 갔어야 했다고 한다
패킷을 R2로 보내고 동시에 호스트 A로 리디렉션 메시지를 보낸다
이제 호스트 A의 라우팅 테이블을 업데이트할 수 있다

redirection 메시지가 호스트의 테이블 수정, 갱신을 도와준다

redirection message format

  • 리다이렉션 메시지는 라우터에서 같은 지역 네트워크에 있는 호스트로 보내진다

Query messages

ICMP는 일부 네트워크 문제를 진단할 수 있다
이 작업은 쿼리 메시지를 통해 수행된다
ICMP 메시지에서 노드는 대상 노드에 의해 특정 형식으로 응답된 메시지를 보낸다

Echo request and reply

  • 이 메시지들을 이용해 네트워크 문제를 알 수 있다
  • 이 메세지들은 서로 통신이 가능한지 확인할 수 있다

request 메시지는 호스트나 라우터로 보내진다
reply 메시지는 request를 받은 호스트나 라우터에서 보내진다

request 및 reply 메시지는 네트워크 관리자가 IP 프로토콜의 작동을 점검하는 데 사용할 수 있다.

ping 명령어를 통해 호스트에 도달하는지 확인할 수 있다

Echo request and reply format

Time stamp request, reply

request, reply 메시지는 source와 destination사이 round trip time을 계산할 수 있다, 둘 사이 시간이 동기화 되지 않아도 가능하다

정확한 하나의 시간을 아는 경우 timestamp-request 및 timestamp-reply 메시지를 사용하여 두 컴퓨터의 두 시계를 동기화할 수 있다

Time stamp request, reply format

Debugging tool

디버깅을 위해 인터넷에서 사용할 수 있는 몇 가지 도구가 있다
호스트 또는 라우터가 활성 상태이고 실행 중인지 확인할 수 있다
패킷의 경로를 추적할 수 있다
디버깅에 ICMP를 사용하는 두 가지 도구, ping과 traceroute

profile
정리

0개의 댓글