본문으로 바로가기

TIL 2021-11-10 ICMP 1

category TIL 2021. 11. 10. 23:25

ICMP는 통신환경에 대한 문제에 대한 피드백을 제공해주는 것

 

호스트와 라우터 사이의 ip 상태와 에러를 통신하기 위해 만들어짐

 

호스트 사이에 메세지를 라우트하기 위해 IP 사용

 

IP로 구현해야함

- IP 데이터그램에 포함이 되어 전송됨

IP는 SRC->DST로 데이터그램을 보내고 비트 손실을 대비한 checksum이 있지만 소스 호스트에 대한 알림 기능이 없음

 

이떄 ICMP를 사용하는 것

 

소스 호스트에게 IP 오류를 전송

ICMP 데이터는 IP 데이터그램의 payload로 이동됨

전송될떄는 IP Header + ICMP Message가 같이 붙어서 간다. 프로토콜 번호는 1

ICMP는 IP보다 상위 레벨 프로토콜인것처럼 IP의 기본 서포트를 받는다.

실제론 IP 내장 부분이며 IP 모듈마다 구현해야됨.

목적은 correction이 아니라 reporting

송신자에게 전송됨

IP Header는 src와 dst 주소만 있기 떄문이다.

 

 

ICMP 메세지는 두가지 클라스로 나눠지는데

 

1. ICMP error reporting message: IP Packet processing에 발생한 문제 report

  • 1. Destination Unreachable
  • 2. Redirct -> 라우팅 경로가 잘못됨
  • 3.Source Quench(deprecated) -> 소스가 너무 많은 데이터가 발생해 혼잡 발생
  • 4. Time Exceeded
  • 5.Parameter problem

 

2. ICMP Query message: 관리자에 의해 라우터나 다른 호스트의 특정 정보를 얻을떄 사용

 

  • 1. Echo -> ping A
  • 2. Router solicitation(RS) and Router advertisement(RA)
  • 3. Timestamp -> 동기화
  • 4. Address Mask

 

Destination Unreachable (3) 라우터나 호스트가 데이터그램 forward를 못시킬떄

gateway

  • 0 -> 게이트웨이 라우팅 테이블에 내용이 없음
  • 1 -> 호스트에 도달 못함(다이렉트 포워딩해야하는데 정보가 없음)
  • 4 -> fragmentation이 필요한데 DF가 설정됨
  • 5-> 소스 라우팅에서 게이트웨이 리스트 중에 없음

host

  • 2-> 프로토콜을 못사용하는 경우 (UDP로 세팅되어 있는데 UDP가 사용불가능한 경우)
  • 3-> 포트 도달 못함

 

ICMP error message

 

gateway

 

0 -> 전송중 TTL이 0이 되어 보낼수 없음!!

 

host

 

1-> fragment 재조립 시간 초과

 

 

Parameter problem message(12)

 

데이터그램 헤더에 모호함이 있는 경우 전송

 

0 -> 에러를 가르키는 포인터

 

Source Quench Message (4) (발신지 억제)

 

라우터 버퍼 공간에 다 차버리면 discard되는데, 이떄 소스에게 알려줌

 

Redirect Message(5)

 

더 짧은 path를 알려주는 것

 

원래 장소 R2로 포워딩은 하고 메세지를 보냄

 

 

Query Message

 

Echo Request / Echo Reply Message(잘못 진단, 도달 가능성 체크)

 

echo reply는 echo request를 받은 라우터나 호스트에게로 보내짐

 

ping 커맨드를 통해 도달 가능성 검증함

 

echo message 8

 

echo reply 0

 

code = 0

 

Identifier - > echo와 reply를 일치하는데 도움을 주는 식별자

0일수도 있음

 

Sequence Number -> echo와 reply를 일치하는데 도움을 주는 순서 번호

0일수도 있음

 

ICMP v4 Router Discovery Message

 

호스트가 이웃 라우터의 IP 주소를 발견하기 위해 네트워크 broadcast하거나 multicas에 연결할수 있도록 해주는 ICMP의 확장

 

Terminology

 

Neigboring

 

동일 서브넷에 속해있는 IP 주소를 가지고 있음

 

 

호스트가 directly attached subnet에 데이터그램을 보내기 전에 그것은 해당 서브넷의 작동하는 라우터의 주소를 받아야함

 

시작 시간에 설정 파일로부터 하나 혹은 여러개의 라우터 주소를 읽음

 

DHCP v4