Internet Control Message Protocol Version 4 (ICMPv4)

Slides:



Advertisements
Similar presentations
HTTPS Packet Capture Tutorial
Advertisements

컴퓨터와 인터넷.
Part TCP / IP(계속) 3. IP 주소 4. IP 라우팅 5. 응용 프로토콜.
16장 X.25 패킷 교환망 16.1 X.25 계층 구조 16.2 패킷 계층 프로토콜 16.3 요약.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Chapter 14 User Datagram Protocol (UDP).
차세대 IPv6와 ICMPv 데이터그램 25.2 단편화 25.3 옵션 25.4 검사합 25.5 IP 설계
제 8 장 Traceroute 프로그램.
제 7장 정적 라우팅 프로토콜.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Internet Group Management Protocol (IGMP)
ARP의 실험 발표자 : 이직수
VoIP (Voice Over Internet Protocol)
9장 데이터 링크층 개요 (Introduction To Data-Link Layer)
제 14장 Multicast & Broadcast
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
IP.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
제 6 장 인터넷 제어 메시지 프로토콜.
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
10 장 데이터 링크 제어(Data Link Control)
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
제 7 장 인터넷 프로토콜 : IP 7.1 데이터그램 7.2 단편화 7.3 옵션 7.4 검사합 7.5 IP 설계 7.6 요약.
U D P 전공 : 정보보호 학번 : 이름 : 배 지 태.
Trivial File Transfer Protocol (TFTP)
제 11 장 UDP 11.1 프로세스-대-프로세스 통신 11.2 사용자 데이터그램 11.3 검사합 11.4 UDP 동작
2장. 인터넷의 개념과 주소.
22 장 전송층(Transport Layer)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
21 장 전송층(Transport Layer)
9 TCP의 이해 학습 목표 전송 계층 프로토콜이 제공하는 기능을 이해한다.
TCP/IP TCP/IP의 이해 TCP UDP IP 한빛미디어(주).
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
01. 라우팅 및 원격 액세스의 개요 라우팅은 패킷을 송신지부터 수신지까지 어떠한 경로를 통해 보낼 것인지를 결정하는 방법
3 네트워크 기술 학습 목표 회선 교환 시스템과 패킷 교환 시스템의 차이와 원리를 이해한다.
Chapter 26 IP over ATM.
Teaming pms.
( Windows Service Application Debugging )
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
Ping Test.
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
Addressing the Network – IPv4
Chapter 27 Mobile IP.
라우터의 이해 (보충자료) TCP/IP구성 Ping명령어를 이용한 연결검사 비트와 바이트 10진수/2진수/16진수
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
7 IP 프로토콜의 이해 학습 목표 네트워크 계층의 필요성과 역할을 이해한다.
제 13 장 인터넷 그룹 관리 프로토콜 정보통신연구실.
9 장 오류 검출 및 오류 정정 9.1 오류 종류 9.2 검출 9.3 오류 정정 9.4 요약.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
ARP.
20 XMLHttpRequest.
Presentation transcript:

Internet Control Message Protocol Version 4 (ICMPv4) Chapter 9 Internet Control Message Protocol Version 4 (ICMPv4)

학습목표(OBJECTIVES): ICMP의 필요성. 두 가지 종류의 ICMP 메시지인 오류보고(error reporting)와 질의(query) 메시지 설명. 오류 보고 메시지 목적과 형식 설명. 질의 메시지 목적과 형식 설명. ICMP 메시지의 검사합 방법 설명. 디버깅 도구들이 ICMP 프로토콜을 사용하는 방법 설명. ICMP 를 구현한 간단한 소프트웨어 패키지 구성 설명.

Chapter Outline 9.1 개요(Introduction) 9.2 메시지(Messages) 9.3 디버깅(Debugging Tools) 9.4 ICMP 패키지(Package)

9-1 개요 IP 프로토콜은 오류–보고나 오류 교정 메커니즘이 없다. 만약 무언가 잘못되었을 경우 어떻게 할 것인가? 최종 목적지로 가는 라우터를 찾지 못하거나 TTL 필드 값이 0이 되어 데이터그램을 폐기하면 어떻게 되는가? 이들은 오류가 일어났음에도 불구하고 IP 프로토콜이 원래의 호스트에게 통보할 메커니즘이 없는 경우들의 예이다.

IP프로토콜의 문제점 신뢰성이 없고 비연결형 데이터그램 전달 제공 최선의 노력 전달 서비스 오류 제어와 지원 메커니즘이 없음 오류 보고 및 오류 수정 기능이 없음 호스트와 관리 질의를 위한 메커니즘이 없다 호스트는 간혹 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다 네트워크 관리자는 다른 호스트나 라우터로부터 정보를 획득할 필요가 있다 이 문제점을 보완하기 위해 ICMP 설계

네트워크 계층에서 ICMP 위치

ICMP 캡슐화(encapsulation) IP 데이터그램의 프로토콜 필드 값 1

9-2 메시지 유형 ICMP 메시지는 크게 두 가지 부류로 나눈다: 오류-보고(error-reporting) 메시지와 질의(query) 메시지. 오류-보고 메시지는 라우터나 호스트(목적지)가 IP 패킷을 처리할 때 알게 되는 문제들을 보고한다. 질의 메시지는 쌍으로 생성되는데, 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용된다. 또, 호스트는 같은 네트워크에 있는 라우터들을 발견하고, 라우터는 노드가 메시지를 다른 것으로 재지정하는데 도움을 준다.

9.2 메시지 유형 오류 보고 메시지 : IP 패킷 처리 도중 발견된 문제를 보고 질의 메시지 : 다른 호스트로부터 특정 정보를 획득하기 위해 사용

ICMP 메시지

ICMP 메시지의 일반 형식

ICMP always reports error messages to the original source. Note ICMP always reports error messages to the original source.

오류-보고 메시지 (Error-reporting messages) ICMP의 주 임무 중 하나

다음은 ICMP 오류 메시지의 중요한 사항이다: 오류-보고 메시지 다음은 ICMP 오류 메시지의 중요한 사항이다: ❏ ICMP 오류 메시지를 전달하는 데이터그램에 대해서는 ICMP 오류 메시지가 생성되지 않는다. ❏ 첫 번째 단편이 아닌 단편화된 데이터그램에 대해서는 ICMP 오류 메시지가 생성되지 않는다. ❏ 멀티캐스트 주소를 가진 데이터그램에 대해서는 ICMP 오류 메시지가 생성되지 않는다. ❏ 127.0.0.0 이나 0.0.0.0과 같은 특별한 주소를 가진 데이터그램에 대해서는 오류 메시지가 생성되지 않는다. Note:

오류 메시지를 위한 데이터 필드의 내용 데이터부분 처음 8 바이트 : TCP와 UDP 포트 번호와 순서 번호

목적지 도달 불가(Destination-unreachable) 형식 라우터가 데이터그램을 라우팅할 수 없거나 호스트나 데이터그램을 배달할 수 없을 때 데이터그램은 폐기되고 발신지 호스트에 목적지 도달 불가 메시지 전달

오류 보고 메시지 코드 필드 : 데이터그램 폐기 이유 0 : 하드웨어 고장 네트워크에 도달 불가 1 : 하드웨어 고장 호스트에 도달 불가 2 : 프로토콜에 도달 불가 3 : 포트 도달 불가 . 15 : 우선 순위가 낮아서 호스트 도달 불가  책 257,258 쪽 참조

Note 코드 2 나 3 을 가진 목적지-도달불가 메시지는 목적지 호스트에 의해서 생성할 수 있다. 그 밖의 목적지-도달 불가 메시지들은 라우터에 의해서 생성된다.

라우터는 패킷 배달을 방해하는 모든 문제를 발견할 수 없다. Note 라우터는 패킷 배달을 방해하는 모든 문제를 발견할 수 없다.

IP 프로토콜은 흐름-제어 혼잡-제어 메커니즘이 없다. Note IP 프로토콜은 흐름-제어 혼잡-제어 메커니즘이 없다.

발신지-억제( Source-quench) 형식 혼잡으로 인하여 데이터그램 폐기를 발신지에 알림

발신지-억제 메시지는 라우터나 목적지 호스트에서 혼잡으로 인해 데이터그램이 폐기되었음을 발신지에 알린다. Note 발신지-억제 메시지는 라우터나 목적지 호스트에서 혼잡으로 인해 데이터그램이 폐기되었음을 발신지에 알린다. 발신지는 혼잡이 완화될 때까지 데이터그램을 송신하는 속도를 낮추어야 한다.

혼잡으로 인해 데이터그램이 폐기될 때마다 발신지 억제 메시지를 보내야 한다. Note 혼잡으로 인해 데이터그램이 폐기될 때마다 발신지 억제 메시지를 보내야 한다.

시간 초과 (Time-exceeded) 메시지 형식 라우팅 테이블에 오류가 있을 시에 패킷은 루프 또는 사이클에 빠질 수 있다

라우터가 TTL 필드를 감소해서 그 값이 0 이 되면 데이터그램을 폐기하고 시간 경과 메시지를 원래의 발신지에게 보낸다. Note 라우터가 TTL 필드를 감소해서 그 값이 0 이 되면 데이터그램을 폐기하고 시간 경과 메시지를 원래의 발신지에게 보낸다.

Note 최종 목적지가 정해진 시간내에 모든 단편을 받지 못했으면 이미 수신된 단편은 폐기하고, 원래의 발신지로 시간 경과 메시지를 보낸다.

Note 시간 경과 메시지에서 코드 0은 수명 필드의 값이 0이 되었음을 알리기 위해 라우터에 의해 사용된다. 코드 1은 모든 단편이 지정된 시간 내에 도착하지 않았음을 알리기 위해 목적지 호스트에 의해 사용된다.

매개변수-문제(Parameter-problem) 메시지 형식 데이터그램 헤더에 불명확한 점이 있으면 문제가 발생할 수 있다

매개변수 문제 메시지는 라우터나 목적지 호스트에 의해 생성될 수 있다. Note 매개변수 문제 메시지는 라우터나 목적지 호스트에 의해 생성될 수 있다.

재지정 개념(Redirection concept)

호스트는 일반적으로 작은 라우팅 테이블로 시작하지만 점진적으로 증가되거나 갱신된다. Note 호스트는 일반적으로 작은 라우팅 테이블로 시작하지만 점진적으로 증가되거나 갱신된다. 이러한 일을 수행하는 도구 중의 하나가 재지정 메시지이다.

재지정 (Redirection) 메시지 형식

재지정 메시지는 라우터로 부터 같은 네트워크에 있는 호스트로 전달된다. Note 재지정 메시지는 라우터로 부터 같은 네트워크에 있는 호스트로 전달된다.

질의 메시지 네트워크 문제를 진단하기 위해 질의 메시지 사용 에코 요청과 응답 타임스템프 요청과 응답 라우터나 호스트가 통신할 수 있는지 점검 타임스템프 요청과 응답 호스트나 라우터를 지나가는데 필요한 왕복시간 또는 시계 동기화에 사용

에코 요청 메시지는 호스트나 라우터에 의해 보내질 수 있다. Note 에코 요청 메시지는 호스트나 라우터에 의해 보내질 수 있다. 에코 요청 메시지를 받은 호스트나 라우터는 에코 응답 메시지를 보낸다.

에코 요청과 에코 응답 메시지는 네트워크 관리자가 IP 프로토콜의 동작을 검사하기 위하여 사용할 수 있다. Note 에코 요청과 에코 응답 메시지는 네트워크 관리자가 IP 프로토콜의 동작을 검사하기 위하여 사용할 수 있다.

에코 요청과 에코 응답 메시지는 호스트의 도달 가능성(reachability)을 검사할 수 있다. Note 에코 요청과 에코 응답 메시지는 호스트의 도달 가능성(reachability)을 검사할 수 있다. 이것은 ping 명령을 수행함으로써 이루어진다.

에코-요청(Echo-request)과 에코-응답(echo-reply) 메시지

타임스탬프-요청(Timestamp-request)과 타임스탬프-응답(timestamp-reply) 메시지 형식

왕복 시간 계산 원래 타임스탬프(original timestamp) 수신 타임스탬프(receive timestamp) 전달 타임스탬프(transit timestamp) 송신시간 = 수신 타임스탬프 – 원래 타임스탬프 수신 시간 = 패킷이 돌아온 시간 - 전달 타임스탬프 왕복시간 = 송신시간 + 수신 시간

왕복 시간 계산 예(example) 원래 타임스탬프(original timestamp) 값: 46 수신 타임스탬프(receive timestamp) 값: 60 전달 타임스탬프(transit timestamp) 값: 59 패킷 도착 시간: 67 송신시간 = 59 - 46 = 13 ms 수신 시간 = 67 – 60 = 7 ms 왕복시간 = 13 + 7 = 20 ms

Note 시간 동기화가 되어 있지 않더라도 타임스탬프 요청과 타임스탬프 응답 메시지는 발신지와 목적지 사이의 왕복시간을 측정하기 위해 사용될 수 있다.

시간 차 계산 예(example) 실제 편도시간이 주어지면 타임스탬프 요청과 타임스탬프 응답 메시지를 사용하여 두 시계를 동기화 가능 시간 차 = 수신 타임스탬프 - (원래 타임스탬프 + 편도 시간 구간) 편도 시간 구간은 왕복 시간을 2로 나누어 계산한다 시간 차 = 59 – (46 + 10) = 3 ms

정확한 편도 시간을 알 수 있다면 타임스탬프 요청과 타임스탬프 응답 메시지를 사용하여 두 장치의 시계를 동기화 시킬 수 있다. Note 정확한 편도 시간을 알 수 있다면 타임스탬프 요청과 타임스탬프 응답 메시지를 사용하여 두 장치의 시계를 동기화 시킬 수 있다.

감사 합(checksun)) 헤더와 데이터를 포함하는 전체 메시지에 대해 계산 검사합 계산 검사합 검사 송신자는 1의 보수 연산을 사용하여 다음의 단계를 수행한다. 검사합 필드를 0으로 만든다. 헤더와 데이터에 대해 16비트 단어의 합을 구한다. 합의 보수를 취하여 검사합을 구한다. 검사합을 검사합 필드에 저장한다. 검사합 검사 수신자는 1의 보수 연산을 사용하여 다음의 단계를 수행한다. 합의 보수를 구한다. 전 단계의 결과가 16개의 0이면 메시지는 받아들여지고 그렇지 않으면 거절한다.

Example 9.1 그림 9.14는 간단한 에코 요청 메시지에 대해 검사합을 계산하는 예를 보여주고 있다(그림 9.12 참조). 임의로 식별자는 1이고 순서 번호는 9라고 정한다. 메시지는 16비트(2바이트)의 단어들로 분할된다. 이 16비트 단어를 전부 더하고 그 합의 보수를 구한다. 송신자는 이 값을 검사합 필드에 넣을 수 있다.

검사합 계산 예

9-3 디버깅 도구(DEBUGGING TOOL) 인터넷에서 디버깅 용도로 사용될 수 있는 도구에는 몇 가지가 있다. 디버깅 도구를 사용하여 호스트나 라우터가 정상적으로 작동하고 있는지를 점검할 수 있고 패킷이 전달되는 경로를 추적할 수도 있다. 본 절에서는 ping과 traceroute라는 두 가지의 디버깅 도구를 소개한다. 이 후의 장에서도 해당하는 프로토콜을 소개한 후에 다른 디버깅 도구들을 추가로 소개할 것이다.

Example 9.2 Ping 프로그램을 사용하여 fhda.edu 서버를 테스트한 결과는 다음과 같다.

Example 9.3 Ping 프로그램의 두 번째 예에서는 adelphia.net라는 메일 서버가 정상적으로 작동하고 있는지 확인하고자 하며 결과는 다음과 같다. 이 경우 14개의 패킷을 보냈지만 13개의 응답만이 돌아왔다. 순서번호가 13인 마지막 패킷이 돌아오기 전에 ping 프로그램을 인터럽트 하였을 수도 있다. TCP/IP Protocol Suite

traceroute 프로그램 동작 traceroute: 패킷이 발신지에서 목적지까지 전달되는 경로 추척

Example 9.4 Traceroute 프로그램을 사용하여 voyager.deanza.edu 컴퓨터와 fhda.edu 서버 사이의 경로를 찾은 결과는 다음과 같다.

Example 9.5 본 예제에서는 xerox.com까지의 더 긴 경로를 추적한다.

Example 9.6 흥미로운 점은 호스트가 자신에게 traceroute를 보낼 수 있다는 것이다. 자신을 목적지로 지정함으로써 가능하다. 패킷은 예상할 수 있는 바와 같이 루프백 주소로 간다.

Example 9.7 마지막으로 traceroute 프로그램을 사용하여 fhda.edu와 mhhe.com(McGraw-Hill 서버) 사이의 경로를 찾는다. 이 경우 전체 경로를 찾을 수 없다. Traceroute가 5초 내에 응답을 받지 못하면 문제가 있음을 알리기 위하여 *를 프린트하고 다음 홉을 시도한다.

9-4 ICMP 패키지 ICMP가 ICMP 메시지의 송신과 수신을 어떻게 처리하는지 설명하기 위하여 입력 모듈과 출력 모듈로 구성된 ICMP 패키지를 보여준다.

ICMP 패키지