본문 바로가기
데이터 통신

데이터 통신과 네트워킹 Chapter7 ICMPv4

by IT 정복가 2022. 5. 22.
728x90

ICMPv4

1) IPv4 프로토콜은 오류 보고와 오류 수정 기능이 없다.

2) IP 프로토콜은 호스트와 관리 질의를 위한 메커니즘도 없다.

3) ICMPv4는 위의 두가지 단점을 보완하기 위해 설계되었다.

4) ICMP는 IP 프로토콜을 돕는 프로토콜이며 네트워크 층 프로토콜이다.

5) 메시지는 데이터링크층으로 전달되지 않는다.

6) 하위 계층으로 전달되기 전에 IP 데이터그램에 캡슐화 된다.

7) 헤더의 프로토콜 값이 '01'이다.

 

ICMPv4: 메시지

1) 오류 보고 메시지: 라우터나 호스트가 IP 패킷을 처리하는 도중 탐지하는 문제를 보고한다.

2) 조회 메시지: 쌍으로 생성되는데, 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용한다.

 

ICMPv4 메시지 형식

일반적인 형식의 ICMP 메시지

1) 8바이트 헤더와 가변길이의 데이터 부분

 

2) 헤더의 일반 형식은 각 메시지별로 다르지만 처음 4바이트는 공통

> 유형(type): 메시지의 유형

> 코드(code): 특정 메시지 유형의 이유를 지정

> 검사합 필드

 

3) 데이터 영역

: 오류 메시지 - 오류를 갖고 있는 원본 패킷을 찾기 위한 정보

: 조회 메시지: 조회의 유형을 기반으로 하는 추가적인 정보

 

오류 보고 메시지(Error Reporting Message)

목적지 도달 불가

1) 왜 데이터그램이 최종 목적지에 도착하지 못했는지에 대한 오류 메시지의 유형을 나타내기 위해 0~15까지 서로 다른 코드를 사용한다.

2) 코드 0은 목적지 호스트에 도달할 수 없다는 것을 의미한다.

3) 사용자가 웹 페이지에 접속하기 위해 HTTP 프로토콜을 사용할 때 서버가 꺼져 있으면 이 코드가 발생한다.

 

발신지 억제

1) 송신자에게 네트워크에 충돌이 발생해서 데이터그램이 폐기되었음을 알리는 메시지이다.

2) 이 메시지를 전달 받은 발신지는 데이터그램을 송신하는 과정을 천천히 해야 한다.

3) ICMP는 이 메시지를 통해 IP 프로토콜에 혼잡 제어 매커니즘을 추가하는 것이다.

 

경로 재지정 메시지

1) 발신자가 메시지를 전송하기 위해 잘못된 라우터를 사용할 때 사용하는 메시지이다.

2) 아래 그림에서 라우터 1은 적절한 라우터2에게 메시지를 전달하도록 재지정되지만 라우터 1은 발신자에게 향후 디폴트 라우터2로 변경해야 함을 통보한다.

3) 메시지 안에 디폴트 라우터의 IP 주소가 포함된다.

 

시간 초과

1) TTL 값이 0이 되면 데이터그램은 방문한 라우터에 의해 폐기되며, 코드 0을 사용하는 시간 경과 메시지를 발신지에게 전송한다.

2) 추가적으로 데이터그램의 모든 단편이 예정된 주기 시간에 도착하지 않았을 때 코드 1을 사용하는 시간 경과 메시지를 전송한다.

3) TTL은 데이터그램이 아무런 목적 없이 인터넷 안에서 순환되는 것을 방지한다.

 

매개변수 문제

1) 데이터그램의 헤더에 문제가 있거나(코드 0) 어떤 옵션이 없거나 옵션의 의미를 알 수 없는 경우(코드 1)에 전송

 

조회 메시지

1) 조회 메시지는 IP 데이터그램과 연관성 없이 독립적으로 사용할 수 있다.

2) 조회 메시지는 데이터그램안에 발신자로 캡슐화되어 전송된다.

3) 사용형태

: 인터넷에서 호스트나 라우터가 잘 동작하는지 알아봄

: 두 장치 사이의 IP 데이터그램이 단방향 시간이나 왕복 시간을 알아냄

: 두 장치의 클록이 동기화 되었는지 여부를 확인

: 요청과 응답의 한 쌍으로 동작

 

4) 에코 요청(echo request, 유형 8) 메시지와 에코 응답(echo reply, 유형 0)

: 다른 호스트나 라우터가 활성화되었는지 여부를 테스트하기 위해 사용

: 호스트 또는 라우터는 에코 요청 메시지를 다른 호스트나 라우터에 전달

: 에코 요청 메시지를 전달받은 호스트나 라우터가 살아있다면, 에코 응답 메시지드로 응답

: 핑(ping)과 트레이스루트(traceroute)와 같은 디버깅 도구에서 에코 요청과 에코 응답 메시지 쌍을 확인할 수 있음

 

5) 타임스탬프 요청(timestamp request, 13), 타임스탬프 응답(14)

: 두 장치 사이의 왕복시간을 확인할 때나 두 장치 사이의 클록이 동기화되었는지 확인할 때 사용

: 요청 메시지는 시간이 정의되어 있는 32비트 메시지로 전송

: 응답 메시지는 기존의 32비트 메시지와 추가로 요청을 전달받은 시간과 응답한 시간이 나타나 있는 새로운 32비트 값을 포함

 

ICMPv4: 디버깅 도구

핑(Ping)

1) 호스트가 잘 동작하고 있는지와 응답이 가능한지를 알아보기 위한 프로그램

2) 핑 프로그램은 에코 요구와 에코 응답 메시지의 식별자 필드를 설정하고 순서 번호 0으로 시작

3) 이 숫자는 새로운 메시지가 전송될 때마다 1씩 증가

 

Traceroute(유닉스) 또는 tracert(윈도우)

1) 발신자에서 목적지까지 패킷의 경로를 추적할 수 있다.

2) 경로를 지나는 동안 방문하게 되는 모든 라우터의 IP 주소를 찾을 수 있다.

3) 기본적으로 최대 30홉(라우터)에 대해 확인하도록 설정된다.

 

Traceroute

1) Ping 프로그램은 2개의 조회 메시지에서 정보를 얻는 반면에 traceroute 프로그램은 시간 초과와 목적지 도달 불가 오류 보고 메시지로 부터 정보를 얻음

2) Traceroute 프로그램은 응용층 프로그램

3) 일부러 목적지에서 사용하지 않는 포트 번호를 사용. 만약 n개의 라우터가 경로상에 있다면 traceroute 프로그램은 (n+1)개의 메시지를 전달. 첫번째 n 메시지는 각 라우터에서 하나씩 n개의 라우터에 의해 폐기되고, 마지막 메시지는 목적지 호스트에서 폐기됨

4) 라우터간의 경로를 찾기 위해 전달받은 (n+1)의 ICMP 오류보고 메시지를 이용

5) N=3

6) 첫번째 메시지는 TTL 값이 1로 설정되어 전달. 메시지는 첫번째 라우터에서 폐기되며 시간초과 ICMP 오류 메시지가 전송되고 traceroute 프로그램은 처음 라우터의 IP 주소(오류 메시지의 발신지 IP 주소)와 메시지의 데이터 영역에서 라우터 이름을 검색할 수 있음

7) 두번째, 세번째도 동일하게 찾을 수 있음

8) 네번째 메시지는 목적지 주소에 전달되지만 다른 이유로 폐기함. ICMP는 포트 번호를 찾을 수 없다는 코드 3을 가진 목적지 도달 불가 메시지를 전송

9) 기존과 다른 ICMP 메시지를 전송 받은후 traceroute 프로그램은 최종 목적지에 도착했다는 것을 알 수 있음

traceroute 에서 ICMPv4 이용

 

Tracert 

 

ICMPv4:  ICMP 검사합

1) ICMP 검사합은 전체 메시지(헤더와 데이터)에 걸쳐 계산된다.

 

*예) 그림은 단순 에코 요구 메시지를 위한 검사합 계산의 예제를 보여준다.

1) 우리는 임의로 식별자를 1로, 순서번호는 9가 되게 선택한다.

2) 메시지는 16비트(2바이트) 워드로 나누어진다.

3) 워드는 더해지고 합은 보수화된다.

4) 송신기는 이 값을 검사합 필드에 넣는다.


모든 내용은 '데이터 통신과 네트워킹 6판' 책을 공부하여 작성 하였습니다.

728x90