맥 어드레스는 컴퓨터간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소이다.
'컴퓨터 주소는 IP 주소이지 않나?'라는 의문이 들 수 있다. 멀리 있는 컴퓨터와 통신하기 위해서는 IP 주소를 사용하는 게 맞는데, 내부적으로 어떻게 동작하는 지를 들여다 보면 IP 주소를 맥 어드레스(Mac Address)로 바꿔 사용한다. 이 때문에 IP 주소를 사용한다는 것이 결국 맥 주소를 사용하게 되는 것이랑 같은 것이다. 즉, IP 통신 내부에 맥 주소 통신이 포함 되어 있다.
IP 주소 간의 통신은 사실, 각 라우터 hop에서 일어나는 맥 어드레스(Mac Address)와 맥 어드레스(Mac Address) 통신의 연속적인 과정이다. ****IP는 시작점과 끝 점에 해당하는 주소라면, MAC 주소는 바로 옆에 나와 물리적으로 연결되어 있는 노드와 통신할 때 사용되는 주소를 의미한다. 시작점에서 끝점에 가기 위해서는 사이사이 노드들을 거쳐 데이터가 전달되어야 할 것이다. 그래서 IP 주소 간의 통신을 하기 위해서(=시작점에서 끝점으로 가기 위해서), MAC 주소 간의 통신(=바로 옆에 연결되어 있는 노드들과의 통신)을 하는 것이다.
IP 주소가 네트워크 주소라면, 맥 주소는 하드웨어 주소, 물리적 주소, 이더넷 주소라고 불린다.
왜 IP는 '네트워크 주소'라는 이름이 붙었고, 맥 주소는 하드웨어를 의미하는 형용사가 붙은 이름을 가지고 있는 것일까?
NIC(랜카드)를 만드는 제조사가 랜카드를 만들 때, 랜카드 내에 ROM이 있어서 아주 기본적인 OS와 여러 정보들이 들어있다. 이러한 정보 중에 Mac Address도 포함되어 있다. 즉, 랜카드의 주소가 정해져 있는 것이다. 이 주소는 사용자가 마음대로 바꿀 수 없다.
여기서 중요한 것은 통신 모듈에 주소를 부여하고 그 주소를 부여하는 곳이 ROM이다. ROM에다가 맥 주소를 쓰는 데 ROM은 한 번 쓰면 안 지워진다. 그래서 ROM에다가 뭔가 데이터를 쓸 때는 흔히 굽는다고 표현한다. 우리말로 그래서 Burned in address라는 말이 나온 것이다. 한 번 Burning을 하면 바뀌지 않기 때문에 맥 주소(Mac Address)를 물리적인 주소라고 한다. 또 통신에서 physical
이라는 의미는 '바뀔 수 없는'이라는 뜻인데, IP주소는 바뀌지만 Mac주소는 절대로 바뀌지 않는다. 그래서 '맥 어드레스'에 '물리적주소, 하드웨어주소, 이더넷주소'와 같은 이름들이 붙은 것이다.
주소라는 것이 하나만 있으면 되는 것이지 않을까? 왜 굳이 IP 주소를 Mac 주소로 바꿔서 사용하는 것일까?
맥 주소의 다른 이름은 하드웨어 주소라고 위에서 설명했었다. 한 마디로, 그 기계의 고유번호이면서, 그 하드웨어만 가지고 있는 식별번호이면서, 하드웨어를 구분하기 위한 주소인 것이다. 맥 주소는 컴퓨터에만 붙어 있는 것이 아니라 라우터, 스위치 등 모든 통신 장비에 붙어있다.
상황을 가정해보자. 만약에 내가 한국을 넘어서 북극 끝자락에 있는 어떤 A라는 컴퓨터와 통신을 하고 싶다고 가정하자. IP를 통신할 때 사용하자니, IP 주소는 A라는 컴퓨터라는걸 확실하게 보증할 수 없어서 제약이 따른다. 왜냐하면 IP 주소는 변동 가능성이 있기 때문이다. 결국 절대 변하지 않는 기계의 고유 주소번호가 있어야 하는데 그게 바로 맥주소이다.
미국 어딘가에 존재하는 컴퓨터 A와 통신한다고 가정해보자. 어떻게 데이터를 보낼까? 내가 일단 옆에 사람에게 전달하고, 그 옆사람이 또 옆사람에게 전달하고, 그 옆사람이 또 전달 이렇게 해서 A까지 가는게 우리 네트워크 통신 방법이다. 이렇게 나와 이웃 간의 통신을 보장해주는 프로토콜이 데이터링크 계층(Data Link Layer)이고, 이러한 통신 때 필요한 것이 MAC 주소이다. 그래서 A로 데이터를 전송할 때에, 전송하는 데이터의 목적지인 IP 주소 뿐만 아니라, MAC 어드레스도 같이 지정되어야 전송하 ㄹ수 있다.
하지만 컴퓨터는 자신의 IP와 MAC 주소는 알아도 내가 통신하고자 하는 상대방의 MAC 주소는 모른다.
우리가 보통 메일로 보내면 [email protected]와 같이 도메인 주소로 메일을 발송하게 되는데, 이 도메인 주소는 전송될 때 사실 IP로 바꾸어서 통신 요청을 하게 된다.
난 MAC 주소를 별도로 전달하지 않아도, 네트워크 단에서 IP 주소로 MAC 주소를 알아오는 기능을 하는 프로토콜이 있고, 그 프로토콜을 ARP라고 한다. 좀 더 IT 적으로 얘기하면, MAC 주소는 직접 연결된 노드들에게 데이터를 전달하는 데에 초점이 맞혀져 있다. 매체를 두 장치가 아닌 복수 장치가 공유해서 쓰고 있기 때문에, 어떤 한 장치가 프레임(데이터)을 보내면 이 프레임이 어느 장치에 가는 프레임인지 알아야 할 것이다. 어느 장치로 가는 지 알려면 이 프레임이 도착해야 할 장치의 주소를 들여다 봐야 하는데, 그것이 바로 목적지 Mac 주소이다. 데이터 링크 계층에서 보내는 프레임에는 수신 장치의 Mac Address와 이 프레임을 전송하는 Mac Address가 쓰여 있다.