네트워킹을 위해서는 주소가 필요해요 (MAC)

김지윤·2024년 5월 15일
0

컴퓨터 네트워크

목록 보기
14/19

우리는 네트워킹을 통해 다른 서버와 정보를 공유한다고 했습니다.
이전 포스팅을 참고하세요!

이렇게 다른 서버와 네트워킹 하기 위해서는 택배를 받을 때처럼 주소가 필요합니다.
주소의 개념에서 MAC 주소는 각 하드웨어 장치의 고유한 주소입니다.
핸드폰이나 PC를 구매할 때 내장되어 있는 고유한 주소입니다.

한 서버에서 다른 서버로 데이터를 전송할 때 주소를 적어보내야 하는데요, 만약 MAC 주소 적어 보낸다면 전세계에 있는 모든 MAC 주소를 ISP가 알고 있어야 합니다.

이것은 물리적으로 불가능한 일입니다. 이를 해결하기 위해 각 장치는 IP주소를 할당받게 됩니다. IP 주소는 계층적 구조로 만들어진 논리적인 주소이다. 이러한 특징은 데이터 전송을 위해 IP 주소를 찾아갈 때(라우팅 할 때) 유리합니다.


목적지 주소를 알아내는 법

송신 장치가 수신 장치에게 데이터를 보내기 위해서는 도착지의 MAC 주소를 알아야 한다고 했습니다.
만약 외부 네트워크로 보내는 과정이라고 한다면, 이 MAC 주소를 알아내기 위해서 내가 연결되어 있는 라우터의 MAC 주소에게 1차적으로 요청합니다.
그리고 이 라우터는 목적지의 라우터에게 요청하여 최종적인 목적지 MAC 주소를 알아내게 됩니다.
이렇게 알아낸 목적지의 MAC 주소와 출발지의 MAC 주소를 사용해서 데이터를 전송하게 됩니다.


브로드캐스트가 필요한 경우

장치와 장치 사이를 통신하는 방법에는 유니캐스트, 브로드캐스트, 멀티캐스트가 있습니다.

이 중 IP 주소를 사용해 MAC 주소를 알아내는 과정에는 브로드캐스트 방식이 필요합니다.
그 이유는 해당 IP 주소가 연결되어 있는 라우터가 MAC 주소를 찾을 때, 모든 장치들에게 이 IP 주소가 누구 것인지 물어봐야 하기 때문입니다.

ARP는 모든 장치에게 이 IP 주소가 누구 것인지 물어보고, 장치는 자신의 주소와 비교하려면 자신의 CPU를 가동해야 합니다.
그래서 브로드캐스트 방식은 꼭 필요하기도 하지만 CPU의 성능을 떨어뜨리는 단점이 있습니다.

프로젝트에서 만약 모든 사용자에게 같은 알림을 보내야하는 요구사항이 있다면 브로드캐스트 방식으로 직접 구현해봐도 좋을 것 같다.


목적지에 도착한 데이터

MAC 주소는 하드웨어에 부여된 주소라고 했는데요, 이 MAC 주소는 PC의 랜카드(NIC)에 부여된 주소입니다.
만약 상대방이 나의 MAC 주소로 데이터를 보내게 된다면, 우리 PC의 랜카드는 CPU에 새로운 데이터가 들어왔다고 IRQ(인터럽트)를 걸게 됩니다.
그렇게되면 CPU는 하던 일을 멈추고, 랜카드로부터 부여받은 Base Memory로 이동하여 작업을 하게 됩니다.

이 부분에 대해서는 CPU의 인터럽트 작업 포스팅을 통해서 더 자세하게 알아봅시다. 포스팅

profile
꾸준하게 공부하고 기록하는 개발자

0개의 댓글