본문 바로가기

네트워크/네트워크 기초이론

network Layer(3계층)-ICMP/ARP


ICMP(Internet Control Message Protocol)



ICMP: IP 상의 오류를 제어해주는 프로토콜이다. 


-ping: 네트워크 문제를 확인할 때 사용한다.  출발지에서 request를 보내면 반대 쪽에서 reply를 보내는 에코 형식의 프르토콜이다.


*에코형식: 산에서 소리쳤을 때 돌아오는 메아리처럼 의미가 없는 데이터여도 응답을 해주는 것을 에코형식이라 한다.


-tracert, traceroute: tracert(윈도우)와 traceroute(cisco IOS)를 운영체제에 따라 혼용해서 사용한다. 두 가지 다 의미는 같으며, 네트워크 상의 경로를 추적할 때 사용한다. 즉 출발지에서 특정 목적지까지 어느 경로(라우터)를 거쳐서 가는가를 파악하는데 사용한다.

해당 방식은 TTL을 이용한다. 처음 TTL을 1로 하여 메시지를 전송하면 바로 앞에 있는 장비까지, TTL을 2로 하여 메시지를 전송하여 두번째 장비까지 해당 방식으로 정상적인 reply를 받을 때 까지 TTL의 숫자를 올린다.



ICMP header



ICMP 헤더는 다음과 같이 이루어져 있다. 


Type은 해당 메시지가 어떤 상태인지를 나타낸다. request 메시지인지 혹은 reply인지 혹은 unreachable error인지 등등을 나타낸다.

Code는 Type을 보조해주며 Type에 관한 상세 설명이 나와있다.

Checksum은 에러를 검출해주는 역할을 한다.



ARP(address Resolution Protocol)


일반적으로 대부분의 통신은 IP를 갖고 이루어진다. 그러나 LAN 환경에서 이더넷은 MAC 주소를 가지고 통신한다. 이 때 서로의 IP는 알고있지만 MAC주소를 모르는 상황에 IP주소를 통해 MAC주소를 얻어오게해주는 프로토콜이 ARP이다.

ARP는 request 패킷을 상대방 IP를 향해 보내면 해당 패킷을 받은 상대방은 자신의 MAC 주소를 패킷에 포함하여 응답한다.

ARP로 상대방의 MAC주소를 알아내면 ARP cache table에 일정 시간동안 IP와 MAC주소를 맵핑시켜 기록한다.



ARP  헤더


ARP  헤더에 대한 이미지 검색결과


ARP 헤더는 다음과 같이 이루어져 있다.


Hardware type: 2계층 프로토콜의 종류를 나타낸다(이더넷인지 토큰링인지 등등)

Protocol type: 3계층 프로토콜의 종류를 나탄대. (iP인지 등등)

operation: 해당 패킷이 어떤 type인지를 나타낸다.(request 패킷인지 혹은 reply 패킷인지 등등)

Hardware address: 일반적으로 맥주소를 뜻한다.

Protocol address: 일반적으로 IP 주소를 뜻한다.


ARP 패킷을 받으면 목적지 MAC주소 혹은 IP 주소가 자신과 일치하는지 확인 후 일치하면 응답하고 일치하지 않으면 폐기한다.