1 Chapter 9 ICMPv4 Objectives ICMP 의필요성 ICMP 메시지종류 오류보고메시지의목적과형식 질의메시지의목적과형식 ICMP 에서의검사합계산 ICMP 를사용하는디버깅도구들 ICMP 패키지의구성요소및모듈
2 목차 개요 메시지 디버깅 ICMP 패키지
3 9.1 개요 IP 프로토콜의문제점 신뢰성이없고비연결형데이터그램전달제공 최선의노력전달서비스 오류제어메커니즘이없음 오류보고및오류수정기능이없음 호스트와관리질의를위한메커니즘이없다 이문제점을보완하기위해설계
4 9.1 개요 ( 계속 ) 네트워크계층에서 ICMP 의위치
5 9.1 개요 ( 계속 ) ICMP 캡슐화
6 9.2 메시지유형
7 9.2 메시지유형 오류보고메시지 : IP 패킷처리도중발견된문제를보고 질의메시지 : 다른호스트로부터특정정보를획득하기위해사용
8 ICMP 메시지 Category Type Message 3 Destination unreachable Error-reporting message 4 Source quench 11 Time exceeded 12 Parameter problem 5 Redirection Query message 8 or 0 Echo request or reply 13 or 14 Timestamp request and reply
9 ICMP 메시지일반적인형식
10 오류보고메시지 ICMP 의주임무중하나 Note: ICMP always reports error messages to the original source.
11 오류보고메시지
12 ICMP 오류메시지의중요한사항 ICMP 오류메시지를전달하는데이터그램에대해서는 ICMP 오류메시지가생성되지않는다. 첫번째단편이아닌단편화된데이터그램에대해서는 ICMP 오류메시지가생성되지않는다. 멀티캐스트주소를가진데이터그램에대해서는 ICMP 오류메시지가생성되지않는다. 127.0.0.0 이나 0.0.0.0 과같은특별한주소를가진데이터그램에대해서는오류메시지가생성되지않는다.
13 오류메시지를위한데이터필드내용 처음 8 바이트 : TCP 와 UDP 포트번호와순서번호
14 목적지도달불가능 (Destination Unreachable) 라우터가데이터그램을라우팅할수없거나호스트가데이터그램을배달할수없을때데이터그램은폐기되고발신지호스트에목적지도달불가메시지전달 목적지도달불가메시지형식
15 코드필드 : 데이터그램폐기이유 0 : 하드웨어고장으로네트워크에도달불가, 라우터가생성 1 : 하드웨어고장으로호스트에도달불가, 라우터가생성 2 : 프로토콜에도달불가, 목적지호스트에서생성 3 : 포트도달불가 4 : D 비트설정으로인하여단편화불가 5 : 발신지라우팅이불가 6 : 알려지지않은목적지네트워크 7 : 알려지지않은목적지호스트
16 8 : 발신지호스트가고립 9 : 관리상의이유로목적지네트워크와통신금지 10 : 관리상의이유로목적지호스트와통신금지 11 : 명시된서비스유형에대해네트워크에도달불가 12 : 명시된서비스유형에대해호스트에도달불가 13 : 관리자가필터를설치하여호스트에도달불가 14 : 우선순위위반으로호스트에도달불가 15 : 우선순위가낮아서호스트에도달불가
17 Note: Destination-unreachable messages with codes 2 or 3 can be created only by the destination host. Other destination-unreachable messages can be created only by routers.
18 발신지억제 (source quench) 혼잡으로인하여데이터그램폐기를발신지에알림 발신지는혼잡이완화될때까지천천히데이터그램송신
19 Note: There is no flow-control mechanism in the IP protocol.
20 시간경과 (time exceeded) 메시지 코드 0 : 라우터가수명필드값이 0 인데이터그램수신 코드 1 : 단편들이지정된시간내에호스트로도착하지않았음
21 매개변수문제메시지 코드 0 : 필드중에불명료하거나빠진것이있다. 이경우 Pointer 필드는문제가있는바이트를지시한다. 코드 1 : 옵션의요구부분이빠졌음. Pointer 사용않음
22 재지정 (redirection) 데이터그램을잘못된라우터로보낼때라우팅테이블을갱신하기위한방법 수신한데이터그램은폐기되지않고올바른라우터로전송된다. IP packet 1 2 RM 3 IP packet 4 IP packet
23 재지정메시지형식 Code 0: Network specific Code 1: Host specific Code 2: Network specific (specified service) Code 3: Host specific (specified service)
24 질의메시지 에코요청과응답 라우터나호스트가통신할수있는지점검 타임스템프요청과응답 호스트나라우터를지나가는데필요한왕복시간또는시계동기화에사용
25 에코요청과응답 Echo Request and Reply 고장진단목적 호스트나라우터에의해요청메시지가생성되어보내지고, 이를받은호스트나라우터가응답메시지를전송 네트워크관리자가 IP 프로토콜의동작을검사하기위해사용 호스트의도달가능성검사 Ping 명령수행
26 에코요청및에코응답메시지
27 타임스탬프요청과응답 두시스템간에 IP 데이터그램이오고가는데필요한왕복시간결정 그리니치표준시사용 세계표준시 (Universal Time) 의자정으로부터시간을 msec 단위로표현 3개의 (original, receive, transmit) 32 비트필드사용 (0 ~ 4,294,967,295 사이값 )
28 타임스탬프요청과응답메시지형식
29 동작과정 발신지는타임스탬프요청메시지생성 Original timestamp 필드에출발시간값삽입 나머지두필드는 0 목적지는응답메시지생성 Original timestamp 값을같은필드에복사 요청이수신된시점의시간을 receive timestamp 필드에삽입 응답메시지가출발하는시간을 transmit timestamp 필드에삽입
30 왕복시간계산 Sending time = value of receive timestamp - value of original timestamp Receiving time = time the packet returned - value of transmit timestamp Round-trip time = Sending time + Receiving time
31 예 ) Value of original timestamp: 46 Value of receive timestamp: 59 Value of transmit timestamp: 60 Time the packet arrived: 67
32 송신 / 수신시간및왕복시간 Sending time = 59-46 = 13 milliseconds Receiving time = 67-60 = 7 milliseconds Round-trip time = 13 + 7 = 20 milliseconds
33 Note: The timestamp-request and timestampreply messages can be used to synchronize two clocks in two machines if the exact one-way time duration is known.
34 송신시간과수신시간차 : Time difference = receive timestamp - (original timestamp field + one-way time duration) 예 ) Time difference = 59 - (46 + 10) = 3
35 검사합 Example 헤더와데이터를포함한전체메시지에대해계산
36 9.3 디버깅도구
37 9.3 디버깅도구 Ping 프로그램 호스트가정상적으로작동하는지를검사 Traceroute 프로그램 발신지에서목적지까지의경로를추적 시간경과 (ttl=0) 오류보고메시지를이용하여구현 tracert for Windows system
38 9.4 ICMP 패키지
39 9.4 ICMP 패키지 ICMP 구성요소
40 9.4 ICMP 패키지 ( 계속 ) 입력모듈 IP 로부터수신된 ICMP 패킷처리 Receive: an ICMP packet from the IP layer 1. If (the type is any of the three request types) 1. Create a reply. 2. Send the reply. 2. If (the type is a router solicitation) 1. If (station is a router) 1. Create a router advertisement. 2. Send the advertisement.
41 9.4 ICMP 패키지 ( 계속 ) 3. If (the type is one of the three reply messages or router advertisement) 1. Extract information in the data section of the packet. 2. Deliver extracted information to the process that requested it. 4. If (the type defines a redirection) 1. Modify the routing table. 5. If (the type defines an error message other than a redirection) 1. Inform the appropriate source protocol about the situation. 6. Return.
42 9.4 ICMP 패키지 ( 계속 ) 출력모듈 상위계층또는 IP 프로토콜에의해요청된요청, 청원, 오류메시지생성 Receive: a demand 1. If (the demand defines an error message) 1. If (the demand is from IP) 1. If (the demand is forbidden) 1. Return. 2. If (the type defines a redirection message) 1. If (the station is not a router) 1. Return
43 9.4 ICMP 패키지 ( 계속 ) 3. Create the error message using the type, the code, and the IP packet. 2. If (the demand defines a request or solicitation) 1. Create a request or solicitation message. 3. Send the message. 4. Return.