통신을 위해서는 IP 주소와 MAC 주소가 필요하며, IP 주소를 MAC 주소로 바꾸는 절차인 ARP 과정을 거쳐야 한다.
네트워크에서 IP 주소는 논리적 주소, MAC 주소는 물리적 주소라고 한다.
MAC 주소는 총 48bit로 구성되어 있으며, 위 그림과 같이 6octet(6 X 8bit = 48bit)으로 하이픈(-)이나 콜론(:)으로 구분되어 나타낸다. 따라서 12자리의 16진수로 표현하며, 모든 랜의 디바이스들은 반드시 유일한 MAC 주소를 가져야 한다.
MAC 주소의 전반부 24bit는 제조자 코드, 후반부 24bit는 일련번호로 만들어 각 장비에 부여한다.
ARP(Address Resolution Protocol)
같은 네트워크에 있는 Y PC와 Z PC가 통신을 하려고 한다고 가정해보자. 이 때 Y PC는 Z PC의 IP 주소를 알고 있다. 그럼 Y PC는 자기가 속한 네트워크에 있는 모든 PC에게 "Z PC가 있으면 MAC 주소를 알려줘"라고 ARP Request를 보낸다. 이 때 Z PC는 Y PC와 같은 네트워크에 있기 때문에 Y PC가 보낸 메시지를 받고 ARP Reply로 자신의 MAC 주소를 알려주게 되면 Y PC는 Z PC의 MAC 주소를 안 다음에 비로소 통신을 시작하게 된다.
이번엔 다른 네트워크에 있는 Y PC와 Z PC가 통신을 하려고 한다고 가정해보자. 다른 네트워크에 있기 때문에 Y PC가 ARP Request를 보내도 Z PC는 메시지를 받아볼 수 없다. 하지만 Y PC와 연결되어 있는 A 라우터가 Z PC가 Y PC와 같은 네트워크에 없다는 것을 알고 ARP Reply로 자신의 MAC 주소 알려주게 된다. 따라서 Y PC는 Z PC에게 정보를 보낼 때 받는 MAC 주소를 A 라우터의 MAC 주소로 보내게 되고, 그 정보를 A 라우터가 받은 후 Z PC가 있는 네트워크로 넘겨준다. 그러면 Z PC가 있는 네트워크의 B 라우터가 Z PC의 MAC 주소를 알아내 전달하게 된다.
즉, 네트워크 환경에서 임의의 호스트가 다른 호스트에게 데이터를 전송하려면 수신 호스트의 IP 주소뿐만 아니라 MAC 주소도 알아야 하며, IP 주소로부터 수신 호스트의 MAC 주소를 얻는 과정인 ARP가 필요하다.