MAC 주소란 무엇인가요? IP 주소와 비교하기
IP 주소와 MAC 주소는 공통적으로 네트워크에서 다른 장치를 식별하기 위한 주소라는 점에서는 공통적입니다.
IP 주소
논리적 주소, 혹은 인터넷 프로토콜 주소라고 합니다. 네트워크 상에서 컴퓨터, 기타 디바이스를 식별하는 고유 주소입니다. MAC주소와 차이점은 물리적 주소가 아니기 때문에 IP 주소에 연결된 네트워크 하드웨어는 언제든지 변경될 수 있습니다. IP주소는 IPv4와 IPv6 방식이 있는데, 일반적으로 사용되는 IPv4는 32비트 주소로 255.255.255.255와 같이 표현됩니다.
IP주소는 인터넷이나 로컬 네트워크와 같은 네트워크를 통해 데이터 패킷이 올바른 목적지 네트워크에 도달하게 하는 라우팅 역할을 수행합니다.
MAC 주소
물리적 주소로, 네트워크 인터페이스 컨트롤러(NIC)에 할당된 고유한 식별자입니다. 48비트 주소로, FF:FF:FF:FF:FF:FF형태로 표현됩니다. 물리적 주소라는 의미는, 하드웨어 장치를 제조할 때 부여된다는 의미입니다. MAC 주소는 일반적으로 로컬 네트워크 내에서 장치를 식별하고 통신하는데 사용되고, 이는 일반적으로 OSI 2 Layer(Link Layer)에서 일어납니다.
정리하면, IP 주소가 네트워크 레이어(흔히 인터넷 계층이라고도 함)에서 작동하고 전체 네트워크를 통해 라우팅될 수 있는 반면, MAC 주소는 데이터 링크 레이어에서 작동하며 주로 로컬 네트워크 내에서만 사용된다는 점입니다.
따라서, 패킷이 IP 주소의 라우팅을 통해 대상 로컬 네트워크에 도달하면, IP 주소를 MAC 주소로 변환하여 실제 물리적 디바이스를 찾아 패킷이 전달되게 됩니다. 이 IP 주소와 MAC 주소 간의 변환을 수행하는 프로토콜이 ARP 프로토콜입니다.
ARP 프로토콜은 소프트웨어적으로 할당된 논리 주소인 IP 주소(L3)를 실제적 물리 주소인 MAC 주소(L2)로 바꾸어주는 역할을 하는 주소해석 프로토콜을 의미합니다. 두 단말 간 통신을 할 때 기본적으로 LAN 카드에 할당된 고유 MAC 주소를 통해 데이터가 전달됩니다. 그 이유는 MAC 주소가 전 세계에서 유일한 실제 목적지 주소이며, 이를 바탕으로 OSI 7계층, TCP/IP 4계층의 표준화된 모델에 따라 통신하기로 약속되었기 때문입니다.
ARP 프로토콜 동작 순서?
통신하는 두 단말이 같은 네트워크에 있을 때와, 다른 네트워크에 있을 때로 나눌 수 있습니다. 같은 네트워크에 있을 때 중계 장치가 MAC 주소 테이블 정보를 저장, 관리하고 있으므로 내부에서 단말들이 MAC 주소로 통신할 수 있게 됩니다.
참고) 네트워크의 통신 방식
- 유니캐스트 : 출발지와 목적지가 정확히 일치해야 하는 일대일 통신입니다. 대상의 MAC 주소가 아닐시 drop 하기 때문에 다른 PC들의 성능을 저하하지 않습니다.
- 브로드캐스트 : 같은 네트워크에 있는 모든 장비들에게 보내는 통신입니다.
- 멀티캐스트 : 유니캐스트와 브로드캐스트를 합쳐놓은 듯한 개념으로 그룹주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷을 전송합니다.
- 애니캐스트: 일대일 통신으로 유니캐스트와 비슷하지만 다른 점으로는 네트워크에 연결된 수신 가능 장비 중 가까운 한 노드에만 전송합니다. 또한 IPv6 기반으로 통신합니다.
같은 네트워크에 있을 때
- A가 B와 통신하기 위해 ARP 요청을 브로드 캐스트 방식으로 상대의 IP 주소를 가진 단말이 존재하는지 물어봅니다. MAC 주소는 모르므로 FF:FF:FF:FF:FF:FF로 송신합니다.
- 네트워크 스위치 장비는 A의 MAC 주소를 MAC 주소 테이블에 저장합니다.
- 만약 네트워크 스위치 장비가 B의 IP 주소에 대한 MAC 주소가 저장되어있다면, A에게 B의 IP주소를 알려줍니다.
- 저장되어있지 않다면, B까지 ARP 요청이 전달되고, 요청을 받은 B는 MAC 주소를 알려주는 응답을 합니다. 이후 네트워크 스위치는 B의 MAC 주소를 MAC 주소 테이블에 기록합니다.
- A는 전달받은 B의 MAC 주소를 확인하고 B와 통신을 시작합니다.
다른 네트워크에 있을 때
- A와 B가 통신하기 위해 같은 네트워크 대역에 ARP 요청을 브로드캐스트 방식으로 B의 IP 주소를 가진 단말이 있는지 물어봅니다.
- 라우터는 해당 ARP 요청을 받고(목적지가 게이트웨이의 MAC 주소이므로) 목적지 B의 IP 주소가 같은 네트워크에 있지 않기 때문에 같은 네트워크 대역대에 있는 라우터 자신의 인터페이스 MAC 주소로 응답해줍니다.
- A는 B와 통신하기 위해 다시 라우터에게 B의 목적지 주소와 같은 네트워크 대역의 라우터 인터페이스 MAC 주소를 목적지로 ARP 요청을 보냅니다.
- 라우터는 해당 네트워크 대역까지 패킷을 보냅니다. 단, 라우터도 목적지 B의 MAC 주소를 모르므로 해당 네트워크 대역대에 Broadcast 메시지로 단말을 찾습니다.
- B 단말이 응답하고, 라우터를 통해 A와 B가 통신을 시작합니다.
- 각 단말은 방금 통신한 IP 주소의 MAC 주소를 일정 시간동안 보관합니다. 이를 ARP 캐시라고 합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
라우팅 알고리즘과 프로토콜 (1) | 2023.06.10 |
---|---|
네트워크 계층 - IP, CIDR, NAT (0) | 2023.06.09 |
SOP, CORS - CORS 이슈 해결하기 (0) | 2023.05.29 |
Socket의 연결 종료와 Timeout 설정하기 - setSoTimeOut (0) | 2023.04.06 |
HTTP 요청 전송 및 분석 - 소켓 프로그래밍, TCP 전송의 원리 (Java) (0) | 2023.02.20 |