제 9 장 ICMP 목원대학교 정보통신공학과 이 명 선
IP 프로토콜의 단점 오류보고와 오류수정 기능이 없다. 호스트와 Management를 위한 Query 메커니즘이 없다. 상기의 단점 보완을 위해 ICMP가 설계되었다 ICMP는 IP 데이터그램에 캡슐화 된 다음 Data Link 층으로 전송된다 제9장 ICMP
9.1 ICMP 메시지 유형 Error_reporting Query IP패킷 처리 중 발생하는 문제를 Report 관리자가 라우터나 다른 호스트로부터 특정 정보획득에 사용 제9장 ICMP
ICMP 메시지 유형 Category Type Message Error-reporting message 3 Destination unreachable 4 Source quench 11 Time exeeded 12 Parameter problem 5 Redirection Query message 8 or 0 Echo request or reply 13 or 14 Time stamp request or reply 17 or 18 Address mask request or reply 10 or 9 Router solicitation and advertisement 제9장 ICMP
9.2 ICMP 메시지 형식 헤더 : 8Byte(4Byte는 공통) Data : 가변 길이 Type : 메시지 유형 Code : 메시지 유형 이유 Data : 가변 길이 제9장 ICMP
9.3 오류 보고(Error Reporting) 오류보고의 형식은 5가지로 구별되어있다 ICMP의 주임무는 오류 수정이 아니라 보고이다. 오류메세지는 최초 발신자에게 보내진다. 패킷의 정보에는 발신지와 목적지 밖에 없다. 제9장 ICMP
목적지 도착 불가(Destination Unreachable) 데이터그램 폐기 라우터나 호스트가 데이터그램을 전달 할수 없을때 16가지 이유 Code에 의해 폐기 실행 Code 2,3 : 목적지 호스트에서 생성 이외의 Code : 라우터에서 생성 데이터그램 폐기 이유 16가지 제9장 ICMP
더 이상 Source Quench 메시지가 없을 때 까지 IP프로토콜은 흐름제어가 없으므로 혼잡문제 발생 라우터나 목적지 호스트에서 혼잡(congestion)으로 인해 데이터그램 폐기를 발신지로 전달 발신지는 혼잡이 완화될 때 까지 송신 속도 조정 더 이상 Source Quench 메시지가 없을 때 까지 제9장 ICMP
시간 경과(Time Exceed) 라우팅 테이블의 오류 정해지 시간 내에 모든 단편을 받지 못한 경우 Code TTL값이 0일 경우, 패킷 폐기 후 발신지로 전송 정해지 시간 내에 모든 단편을 받지 못한 경우 Code 0 : 수명 필드의 값이 0이되어 단편을 폐기하는 경우 1 : 정해진 시간 이후에 단편이 도착되어 폐기 하는 경우 제9장 ICMP
매개변수 문제(Parameter Problem) 데이터그램 헤더에 불명확한 부분이 있는경우 Code 0 : 헤더필드 중 문제가 있는 값이 있는경우(포인터에 표시) 1 : 옵션의 요구부분의 문제발생 문제 있는 바이트 지정 제9장 ICMP
재지정(Redirection) Host는 static routing 사용 Default router(R1)는 올바른 라우터에 전달하고 Host A로 redirection 메시지 전송 제9장 ICMP
Redirection 메시지 형식 Host에게 제공하기위한 형식 Code 둘째 필드 : 올바른 목적지 IP 주소 1 : 호스트 지정경로 2 : 특정서비스 네트워크 지정경로 3 : 특정서비스 호스트 지정경로 둘째 필드 : 올바른 목적지 IP 주소 제9장 ICMP
9.4 질의(Query) 네트워크 문제의 진단에 사용 4가지 질의 메시지가 있음 에코 요청과 응답 타임스탬프 요청과 응답 주소마스크 요청과 응답 라우터 요청과 광고 제9장 ICMP
에코 요청과 응답 고장 진단: 도달 가능성 검사 Echo request를 받은 호스트나 라우터는 Echo reply를 보냄 ping 명령의 수행으로 도달 가능성 확인 식별자와 순서번호는 송신자 임의로 사용가능 제9장 ICMP
타임스탬프 요청과 응답 Round-trip time을 결정 32bit 크기로 단위는 msec로 표현 24X60X60X1,000 = 86,400,000ms을 넘지 못함 두 시스템의 시계 동기화에 사용 발신지에서 출발시각 기록 목적지에서 도착시각 기록 목적지에서 응답메시지 출발시각 기록 제9장 ICMP
타임스탬프 요청과 응답 시계 동기화 응용 예 송신시간 = Receive T.S. - Original T.S. 수신시간 = 패킷이 돌아온 시간 - Transmit T.S. 왕복시간 = 송신시간 + 수신시간 = 패킷이 돌아온 시간 - O.T.S - (T.T.S - R.T.S) 시간 차 = R.T.S - (O.T.S + 편도 시간 구간) O.T.S R.T.S T.T.S 패킷이 돌아온 시간 제9장 ICMP
주소마스크 요청과 응답 호스트가 자신의 마스크 주소를 알고자 할때 요청시 주소마스크 값 : All 0 이 마스크 주소를 이용해 자신의 서브넷 주소를 알수있다 요청시 주소마스크 값 : All 0 응답시 주소마스크 값 : netid All 1 , hostid All 0 제9장 ICMP
라우터 요청과 광고 요청 : 다른 호스트에게 데이터를 보내고자 할때 광고 : 자신이 속한 라우터는 주기적으로 자신과 자신의 라우터 주소를 알아야한다 자신의 네트워크에 브로드캐스트 한다 광고 : 자신이 속한 라우터는 주기적으로 자신과 주변의 라우터 정보을 광고한다 라우터 요청 메시지 형식 라우터 광고 메시지 형식 제9장 ICMP
9.5 검사합(Checksum) 검사합 계산(1의 보수 연산 사용) 검사합 검사 검사합 필드을 0으로, 16비트의 합을 구한다 합의 보수를 취해 검사합 필드에 저장 검사합 검사 16비트 합을 구한다음, 보수를 취한다 결과 값이 All 0 이면 OK, 아니면 NO 제9장 ICMP
9.6 디버깅 도구 Ping Traceroute 목적지 호스트가 정상적으로 작동하는지를 확인 요청 메시지와 응답 메시지로 확인 한다 경로 시간도 확인 할수있다 Traceroute 발신지에서 목적지까지의 경로를 확인 경로에 있는 IP와 시간도 확인 할수있다 제9장 ICMP
9.7 ICMP 패키지 입력 모듈 출력 모듈 요청메세지 경우 : 응답과 광고 메시지 생성 송신 재지정메세지 경우 : 호스트의 라우팅 테이블 갱신 오류메세지 경우 : 오류 발생 상황 보고 출력 모듈 상위계층에서 요청된 요청,오류 메시지 생성 ICMP 생성 불가의 경우 : ICMP메세지 전달 패킷, 단편화 패킷, 멀티캐스트 패킷, All 0 이나 ,127.x.y.z 주소 패킷 제9장 ICMP