ICMP
ICMP(Internet Control Message Protocol)
ICMP RFC 792에 정의 네트워크 계층 프로토콜, IP보다 상위 프로토콜 데이터 전달 오류나 네트워크 상의 문제 발생시 송신측에 알려 이를 알려 주는 프로토콜 인터넷 상의 여러 관리 기능을 수행하는 네트워크 계층 프로토콜 RFC 792에 정의 네트워크 계층 프로토콜, IP보다 상위 프로토콜 IP : 신뢰성 없이 best effort services TCP : 연결형 서비스, 신뢰성 있는 데이터 전송 최종 목적지 도착하기 전에 패킷의 손실 등 오류 발생 IP 프로토콜은 오류 보고/수정 알고리즘 없음 라우터나 다른 호스트로부터 정보의 획득이 필요한 경우 상기 단점을 보완하기 위해 설계됨 : ICMP 일반적으로 오류 보고에 사용됨 예시) telnet, FTP, HTTP 세션 수행 시 ‘목적지 네트워크 도달 할 수 없음(destination network unreachable)’ 오류메시지 생성
ICMP 제공 기능 IP 패킷이 목적하는 호스트까지 도착 여부 확인 기능 IP 패킷의 파기된 원인을 통지해줌 불충분한 설정을 변경해줌 네트워크의 설정 상태 및 기기 이상 등 확인
ICMP 데이터 링크 계층으로 전달되지 않음 IP 데이터그램 내에 캡슐화됨, IP 데이터가 ICMP 메시지 임을 알리기 위해 IP 데이 터그램의 프로토콜 필드 = 1 ICMP 캡슐화
ICMP 8 byte(header) + data 헤더의 일반 형식은 각 메시지 별로 상이, 처음 4byte 동일 Type : ICMP 패킷의 용도(일반적으로 제어와 에러로 구분) Code : Type의 세부 내용, ICMP 메시지의 목적과 용도 Checksum : ICMP 메시지의 이상 유무 판단 8bit 8bit 16bit Type Code Checksum Data
IP Packet Header 40Bytes~ ICMP 메시지 패킷의 세부 구조 IP Packet Header 40Bytes~ 0123 4 7 8 15 16 31 Message Type Code Checksum 메시지 의존 부분 메시지 정보 IP Header ICMP Message
ICMP 라우터나 목적지 호스트가 IP 패킷을 처리하는 도중 찾아내는 문제를 보고함 쌍으로 발생 호스트나 네트워크 관리자가 라우터나 다른 호스트로부터 특정 정보를 획득하기 위해 사용 유형 필드 값 메 세 지 3 목적지 도달 불가 메세지 4 발신지 억제 메세지 11 시간 경과 메세지 12 매개변수 문제 메세지 5 재지정 메세지 유형 필드 값 메 세 지 8 또는 0 에코 요청과 응답 13 또는 14 타임스탬프 요청과 응답 17 또는 18 주소 마스크 요청과 응답 10 또는 9 라우터 간청과 광고
ICMP 메시지의 타입
ICMP Message Type Field 1/2 3 목적지 도착 불가 메시지(Destination Unreachable) 패킷이 중도에 폐기될 때 송신측에 통보 코드 필드에는 전송실패 이유에 대한 정보, 메시지 정보에는 패킷의 해더와 데이터의 상위 8Byte 저장 소스 억제 메시지(Source Quench) 원칙적으로 IP 계층은 흐름제어 방법이 없음 IP 라우터의 과도한 패킷의 유입으로 라우터가 패킷을 버려야 할 경우 코드 필드에는 ‘0’ 재지정 메시지(Redirection) 최적의 라우팅 정보를 송신측에 통보 코드 필드에는 재지정 라우터 주소, 메시지 정보에는 패킷의 해더와 데이터의 상위 8Byte 저장 시간 초과 메시지(Time Exceeded) 시간 초과로 데이터를 폐기할 때 송신측에 통보 코드 필드에는 TTL 초과인 경우 ‘0’, 재결합 초과인 경우 ‘1’이 설정 4 5 11
ICMP Message Type Field 2/2 Echo Request message(type : 8, code : 0/Reply – type : 0, code: 0) 송신측의 패킷이 목적지 노드나 라우터에 도착했는지를 확인하는데 사용 ICMP Echo Request 메시지를 보내고 ICMP Echo Reply가 회신되면 패킷이 무사 히 전송됨 Time Exceeded message(type : 11) 패킷이 네트워크 사이에서 무한정 돌아가 지 않게 하게 하기 위해 각 라우터가 패킷 을 처리 할 때마다 TTL을 감소 시키다가 그 값이 '0'이 되면 송신측 라우터에 이 메시 지를 되돌려 보내서 패킷이 폐기된 사실을 알려줌 멀티 홉을 거칠 때 TTL가 감소하는데 목적 지에 도달하지 못할 때 보내줌
ICMP 목적지 도달 불가(Destination Unreachable) message 라우터가 특정 노드의 패킷을 목적지에 보내지 못할 경우 송신 노드에 대해 이 메시지를 보냄 Type : 3 해당 IP 주소에 대한 경로 정보를 갖고 있지 않음 해당 컴퓨터가 네트워크에 연결되어 있지 않음
ICMP 재지정 (Redirect) message : Type 5 라우터가 호스트보다 좋은 경로 정보를 가 진 경우 작동
ICMP 시간 초과(Time Exceeded) message : Type 11 TTL 값이 ‘0’임을 송신 측에 반환하고 패킷이 파기되었음을 통지
ICMP Echo request/reply : Type – 0, 8 통신하고 싶은 호스트나 라우터에 IP 패킷이 도착했는지 확인하기 위해 이용 ICMPv6의 오류 메시지
ICMP – echo request/reply 메시지 유형(Type, 8 비트) ICMPv4 : Echo Request => 8, Echo Reply => 0 ICMPv6 : Echo Request => 128, Echo Reply => 129 메시지 코드(Code, 8 비트) : (미사용) 통상 0 으로 셋팅 Identifier (2 바이트) 단일 질의에 대한 식별(세션 식별 번호)을 위한 필드 같은 질의에 대해 Echo Request 및 Echo Reply의 Identifier는 같은 값을 갖게됨 Sequence number (2 바이트) 단일 질의에 대하여, 여러 번의 질의메시지를 보낼 때 이들에 대한 일련번호임 Optional data (가변적) 송신측에서 반드시 데이터를 포함시킬 의무는 없지만, 일단 포함시키면 수신측은 Echo Reply에 이 데이터를 포함시켜야 함
유니캐스팅/멀티캐스팅/브로드케스팅 ? Uni-casting Multi-casting Group Broad-casting
유니캐스팅 & 멀티캐스팅 차이 유니캐스팅 멀티캐스팅 1 1 동일한 패킷을 여러 번 발송 (수신자가 다르므로) 수신자가 달라도 하나의 패킷만 발송 멀티캐스팅
IGMP Internet Group Management Protocol 멀티캐스트를 지원하는 라우터가 그룹에 가입된 호스트를 관리하기 위해 사용 IGMP format Type 최대 응답 시간 CheckSum 그룹 주소 0123 4 7 8 15 16 31 최대 응답 시간 : 멀티캐스트 라우터가 호스트에게 멀티캐스트 그룹 사용 여부를 묻고 난 후 기다리는 대기시간. 즉, 멀티캐스트 그룹을 계속 사용하고자 하는 호스트는 정해진 시간 내에 응답해야 함.