전공공부/컴퓨터망 (Computer Network)

[컴퓨터망] Link Layer (3) - MAC Address and ARP

jooona 2021. 1. 23. 15:34
반응형

이번 글에서는 데이터 링크 계층에서 과연 어떻게 자신이 데이터를 전달해야 할 노드를 찾는지에 대한 공부를 해보겠습니다.

 

1. Mac 주소

Mac은 Media Access Control의 약자이며, Mac 주소란 네트워크 카드 하드웨어에 부여되어 있는 고유한 물리적인 주소입니다. 네트워크 상에서 통신을 할 때 서로를 구분하기 위한 주소로써, IP 주소만 가지고는 무슨 기기에 해당 IP 주소가 할당되어 있는지 알 수 없기 때문에 IP 주소를 MAC 주소로 변환해주는 과정이 필요합니다. 이 과정을 바로 ARP (Address Resolution Protocol)라고 합니다. 

 

자신의 컴퓨터의 Mac 주소를 알고 싶다면 cmd 창에 ipconfig -all을 실행하면 물리적 주소라는 이름으로 확인할 수 있습니다. Mac 주소는 48비트로 이루어져 있으며, 16진수 숫자 12개로 나타납니다.

 

 

2. ARP

앞에서도 말했듯이 네트워크에서는 IP 주소를 가지고 통신을 하지만 처음에는 IP 주소만 가지고는 어떤 기기에 해당 IP 주소가 할당되어 있는지 찾을 방법이 없습니다. 이를 해결하기 위한 방법이 바로 ARP입니다. 

 

만약 A라는 노드가 137.196.7.14라는 IP주소를 가지고 통신을 하고 싶다면, 어떤 물리 주소에 해당 IP가 있는지 모르기 때문에 LAN(Local Area Network)의 모든 노드에 broadcast로 메시지를 보냅니다. 이 메시지는 137.196.7.14라는 IP주소를 가지고 있는 기기는 답장을 달라는 내용을 담고 있습니다. 물론 답장을 받을 수 있도록 자신의 주소를 적어서 말이죠.

 

그럼 LAN 내부의 모든 기기들이 이 메시지를 받게 됩니다. 그리고 자신의 IP 주소와 받은 메시지의 IP 주소를 비교하여 아니면 그냥 무시하고, 같다면 당신이 찾는 IP주소는 바로 자신이라는 메시지를 담아서 답장을 보내주게 됩니다. 이렇게 Mac 주소와 IP 주소를 매칭 하여 알아내게 되면 자신이 가지고 있는 ARP Table이라는 곳에 기록을 하게 됩니다. 그리고 다음에 같은 IP 주소와 통신을 할 때는 굳이 ARP 메시지를 보내지 않고 ARP Table을 참조하여 바로 접근을 할 수 있습니다.

 

사실 ARP 테이블에는 MAC 주소와 IP 주소 외에도 TTL이라는 요소를 기록하는 필드가 존재합니다. TTL은 Time To Live의 줄임말로, 데이터의 유효기간을 의미하는 용어입니다. 여기에 대해서는 다음에 더 상세히 공부할 기회가 있을것이라고 생각하고 여기서는 넘어가도록 하겠습니다.

 

 

3. 외부 네트워크와의 Addressing

같은 LAN 내부의 IP를 주소를 찾는 것은 위와 같은 프로토콜을 거치면 됩니다. 그렇다면 다른 LAN과의 통신을 위해서는 어떤 방법을 사용할까요?

 

LAN과 LAN은 라우터라는 기기로 연결되어 있습니다. 라우터는 양쪽 LAN에 대한 IP 주소와 Mac 주소가 따로 존재합니다. 그래서 이 라우터를 하나의 기기로 생각하고 ARP를 실행하면 라우터가 반대쪽 LAN에도 ARP 메시지를 보내주는 방식으로 주소를 알아갑니다. 

 

위의 그림 같은 상황에서 111.111.111.111은 ARP Table에 222.222.222.222라는 IP 주소를 라우터의 MAC 주소와 매핑하여 기록하게 됩니다. 그러고 다음에 또 222.222.222.222와 통신을 해야 할 일이 생기면 라우터에게 그냥 송신을 하면 됩니다. 그럼 라우터가 222.222.222.222의 Mac 주소를 알고 있기 때문에 통신을 해줄 수 있습니다.

반응형