Chapter 7 Internet
Control Message
Protocol Version 4
(ICMPv4)
▣ 학습목표(OBJECTIVES):
ICMP의 필요성.
두 가지 종류의 ICMP 메시지인 오류보고(error reporting) 와 질의(query) 메시지 설명.
오류 보고 메시지 목적과 형식 설명.
질의 메시지 목적과 형식 설명.
ICMP 메시지의 검사합 방법 설명.
디버깅 도구들이 ICMP 프로토콜을 사용하는 방법 설명.7-1 개요
IP 프로토콜은 오류–보고나 오류 교정 메커니즘이 없다. 만약 무언가 잘못되었을 경우 어떻게 할 것 인 가 ? 최 종 목 적 지 로 가 는 라 우 터 를 찾 지 못하거나 TTL 필드 값이 0이 되어 데이터그램을 폐 기 하 면 어 떻 게 되 는 가 ? 이 들 은 오 류 가 일 어 났 음 에 도 불 구 하 고 IP 프 로 토 콜 이 원 래 의 호 스 트 에 게 통 보 할 메 커 니 즘 이 없 는 경 우 들 의 예이다.
▣ IP프로토콜의 문제점
신뢰성이 없고 비연결형 데이터그램 전달 제공
최선의 노력 전달 서비스
오류 제어와 지원 메커니즘이 없음
오류 보고 및 오류 수정 기능이 없음
호스트와 관리 질의를 위한 메커니즘이 없다
호스트는 간혹 라우터나 다른 호스트가 동작하고 있는 지 알 필요가 있다
네트워크 관리자는 다른 호스트나 라우터로부터 정보 를 획득할 필요가 있다
이 문제점을 보완하기 위해 ICMP 설계
ICMP 네트워크나 호스트의 장애 발생, 사용자 정 보는 전달하지 않음.
▣ICMP 메시지의 예
R3는 경로 설정표가 잘못되어 데이터그램을 System B에 전달 불가능
System B
System A R3
R2
R1
R4
ICMP 메시지가 원래 출발지인 System A로 보내짐 R3는 경로 설정표가
잘못되어 데이터그램을 System B에 전달 불가능
System B
System A R3
R2
R1
R4
ICMP 메시지가 원래 출발지인 System A로 보내짐
TCP/IP 계층에서 ICMP 위치
Transport Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
하부 네트워크에 의해 정의된 프로토콜 Ethernet, 토큰링(FDDI), 폴링(IBM 주전산기)
TCP UDP
Applications
SMTP FTP TELNET DNS SNMP NFS HTTP
RPC
IP
ICMP IGMP
ARP RARP
Application
Transport
Internet
Network Access
Transport Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
Transport Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
하부 네트워크에 의해 정의된 프로토콜 Ethernet, 토큰링(FDDI), 폴링(IBM 주전산기)
TCP UDP
TCP UDP
Applications
SMTP FTP TELNET DNS SNMP NFS HTTP
RPC Applications
SMTP FTP TELNET DNS SNMP NFS HTTP
RPC NFS
RPC
IP
ICMP IGMP
ARP RARP
IP
ICMP IGMP
ARP RARP
Application
Transport
Internet
Network Access
ICMP 캡슐화(encapsulation)
IP 데이터그램의 프로토콜 필드 값 1
Data
(46~1500) FCS(4) Destination
Address(6)
Source Address(6)
Ether Type(2) Preamble
(7)
SFD (1)
IP 데이터 IP 헤더
ICMP 데이터 ICMP
헤더
Data
(46~1500) FCS(4) Destination
Address(6)
Source Address(6)
Ether Type(2) Preamble
(7)
SFD (1)
IP 데이터 IP 헤더
ICMP 데이터 ICMP
헤더
7-2 메시지 유형
ICMP 메시지는 크게 두 가지 부류로 나눈다:
-오류-보고(error-reporting)메시지는 라우터나 호스트(목적지)가 IP 패킷을 처리할 때 알게 되는 문제들을 보고한다.
-질의(query) 메시지쌍으로 생성되는데, 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용된다.
9.2 메시지 유형
오류 보고 메시지 : IP 패킷 처리 도중 발견 된 문제를 보고
질의 메시지 : 다른 호스트로부터 특정 정보 를 획득하기 위해 사용
ICMP 메시지
Category Type Message
오류 보고 메시지
(Error-reporting Message)
3 Destination Unreachable
4 Source Quench
5 Redirect
11 Time Exceeded
12 Parameter Problem
질의 메시지 (Query Message)
0 Echo Reply
8 Echo Request
13 Timestamp Request
14 Timestamp Reply
15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply
▣ ICMP 메시지의 일반 형식
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Type(1) Code(1) Checksum(2)
매개변수 또는 사용안함(4)
잘못된 IP 헤더 + 상위계층의 64bit
▣ ICMP 메시지 종류
오류-보고 메시지 (Error-reporting messages)
ICMP의 주 임무 중 하나
오류 메시지를 위한 데이터 필드의 내용
데이터부분 처음 8 바이트 : TCP와 UDP 포트 번 호와 순서 번호
목적지 도달 불가(Destination-unreachable) 형식
라우터가 데이터그램을 라우팅할 수 없거나 호스트나 데이터그램을 배달할 수 없을 때 데이터그램은 폐기되고 발신지 호스트에 목 적지 도달 불가 메시지 전달
▣ 질의 메시지
네트워크 문제를 진단하기 위해 질의 메시지 사용
에코 요청과 응답
라우터나 호스트가 통신할 수 있는지 점검
Ping 명령으로 확인
타임스템프 요청과 응답
호스트나 라우터를 지나가는데 필요한 왕복시간 또는 시 계 동기화에 사용
에코-요청(Echo-request)과 에코-응답(echo-reply) 메시지
감사 합(checksun))
헤더와 데이터를 포함하는 전체 메시지에 대해 계산
검사합 계산
송신자는 1의 보수 연산을 사용하여 다음의 단계를 수행한다.
1. 검사합 필드를 0으로 만든다.
2. 헤더와 데이터에 대해 16비트 단어의 합을 구한다.
3. 합의 보수를 취하여 검사합을 구한다.
4. 검사합을 검사합 필드에 저장한다.
검사합 검사
수신자는 1의 보수 연산을 사용하여 다음의 단계를 수행한다.
1. 헤더와 데이터에 대해 16비트 단어의 합을 구한다.
2. 합의 보수를 구한다.
3. 전 단계의 결과가 16개의 0이면 메시지는 받아들여지고 그 렇지 않으면 거절한다.
에코 요청 메시지에 대해 검사합을 계산하는 예를 보여주고 있다.
임의로 식별자는 1이고 순서 번호는 9라고 정한다. 메시지는 16비트(2바이트)의 단어들로 분할된다. 이 16비트 단어를 전부 더하고 그 합의 보수를 구한다. 송신자는 이 값을 검사합 필드에 넣을 수 있다.
Example 7.1
검사합 계산 예
00001000 00000000 00000000 00000000 01010100 01010011 10101111 01010000
00000000 00000000 00000001 00001001 01000101 01010100 10100011 01011100 8 & 0
0 1
9
T & E
S & T
Sum
Checksum
7-3 디버깅 도구(DEBUGGING TOOL)
인터넷에서 디버깅 용도로 사용될 수 있는 도구에는 몇 가지가 있다. 디버깅 도구를 사용하여 호스트나 라우터가 정상적으로 작동하고 있는지를 점검할 수 있고 패킷이 전달되는 경로를 추적할 수도 있다. 본 절 에 서 는 ping 과 traceroute 라 는 두 가 지 의 디버깅 도구를 소개한다..
Ping 프로그램을 사용하여 129.48.0.10 서버를 테스트한 결과는 다음과 같다.
Example 7.2
traceroute 프로그램 동작
traceroute: 패킷이 발신지에서 목적지까지 전달되는 경로 추척
Traceroute 프 로 그 램 을 사 용 하 여 voyager.deanza.edu 컴퓨터와 fhda.edu 서버 사이의 경로를 찾은 결과는 다음과 같다.
Example 7.3
종합분석: 이더넷 부터 ICMP헤더까지 응답가정
종합문제: 이 문제는 반드시 풀고 갈것
이더넷 상에서 다음과 같이 16진수의 형식의 인터넷 정보를 덤프한 것이다.
(단 이더넷의 Preamble, SFD, CRC 필드는 없고, 목적지 MAC 주소부터
덤프한것임, 또 하단의 화면 자신의 컴퓨터 네트워크 상태임, 디폴트 게이트웨이 ip 주소 및 MAC 주소 표시함)
1. 이더넷 PDU
1.1 이더넷 PDU헤더는?
1.2 목적지 MAC 주소는?
1.3. 발신지 MAC 주소는?
1.4 이더넷 형태는?
1.5 네트워크 계층은 어떤 서비스인가?
2. IP PDU
2.1 IP PDU헤더는?
2.2 목적지 IP 주소는?
2.3. 발신지 IP 주소는?
2.4 프로토콜 형태는?
2.5 IP의 상위 계층인 전송 계층은 어떤 서비스인가?
2.6 IP 버전는?
2.7 IP 헤더 길이는?
2.3. TTL 값은?
2.4 ID 값은?
2.5 헤더 체크섶값은?
2.6 전체 길이값은?
3. ICMP PDU
3.1 ICMP PDU헤더는?
3.2 타입은?
3.3. 코드는?
3.4 헤더 체크섶값은?
3.4 ID는?
3.5 순서번호는?
4.1 송, 수신 ip는 동일한 네트워크에 접속되었는가?
4.2 송, 수신 ip는 동일한 라우터에 접속되었을까?
4.3 발신지와 착신지 IP주소를 반대로 하는 Ping 응답(즉, 이 패킷 수신후 응답하는) 패킷의 헥사값을 이더넷부터 작성하라.
(불확실한값은 임의로 넣을것)
파라메터 값을 설정한 이유도 나열
Ping 응답패킷시가정: - IP 헤더 체크섬: 0x4930 - IP ID: 0x6ae9
- IP 옵션은 없음
- ICMP 헤더 체크섬: 0x455c
정답: 1, 2, 3 문제
정답: 4 문제
4.1 송, 수신 ip는 동일한 네트워크에 접속되었는가?
답: 다른 네트워크, 네트워크 주소가 서로 다르다.
4.2 송, 수신 ip는 동일한 라우터에 접속되었을까?
답: 불확실, 디폴트 게이트웨이의 라우터의 네트워크 주소 할당 방식을 모르기 때문
4.3 발신지와 착신지 IP주소를 반대로 하는 Ping 응답(즉, 이 패킷 수신후 응답하는) 패킷의 헥사값을 이더넷부터 작성하라. (불확실한값은 임의로 넣을것)
파라메터 값을 설정한 이유도 나열
Ping 응답패킷시가정: - IP 헤더 체크섬: 0x4930 - IP ID: 0x6ae9
- IP 옵션은 없음
- ICMP 헤더 체크섬: 0x455c