MAC : Media Access Control
Physical Address 즉, 물리 주소라고 한다. 인터넷에 연결된 기기들을 구분하는 식별자로, 총 48bit이며 앞 24bit는 회사를 식별하고, 뒤 24bit는 기기를 식별한다. 따라서 전세계적으로 고유하다. 실제로 Windows의 ipconfig /all 명령어를 명령 프롬프트(cmd)에 입력하면 IP주소와 MAC주소를 볼 수 있는데, MAC주소는 기억하기 쉽도록 16진수로 표현된다.
F8-16-54 는 회사 식별자
00-92-95 는 기기 식별자
실제로 인터넷에서 통신을 하려면 MAC주소와 IP주소가 같이 요구되는데, 그 이유는 아래에 나와있다.
우선, MAC 주소만으로 통신을 할 수 있는지 알아보자.
결론부터 말하면, 자신과 같은 네트워크 공간에 있는 컴퓨터와 통신을 하려면 MAC주소만 있으면 된다. 같은 네트워크 공간이라는 것은 안방에 부모님 컴퓨터가 있고, 거실에 공용 컴퓨터가 있고, 내 방에 내 컴퓨터가 있을 때 세 대의 컴퓨터가 통신하는 공간으로 생각하면 된다. 혹은 회사 사무실에서 김과장과 이과장이 각자의 컴퓨터로 통신하는 정도로 생각하면 된다.
인터넷은 크고 작은 네트워크들을 하나로 묶은 것인데, 각 네트워크들끼리는 라우터(Router)라는 장비로 구분된다. 데이터를 전송할 때 라우터를 넘어가게 되면 IP주소가 필요하다. 통신에서 IP주소가 필요한 이유가 바로 라우터에서 다른 네트워크로 데이터를 보내기 위함이다.
그렇다면 MAC주소로 어떻게 통신하는가?
같은 네트워크 공간에 있는 컴퓨터라 하더라도 데이터를 주고 받으려면 장비가 필요하다. 이 장비를 스위치(Switch)라고 하는데, 스위치에는 작은 메모리가 있어서 MAC주소를 저장할 수 있다. 즉, 어떤 컴퓨터가 어떤 MAC주소로 소유했는지 테이블에 기록하는 것이다. A컴퓨터에서 B컴퓨터로 데이터를 전송하려면 중간에 스위치를 거쳐야만 한다. 만약 스위치에 해당 MAC주소를 가진 컴퓨터가 없다면, 목적지가 없는 데이터가 되어버린다. 목적지를 찾을 수 없을 경우 그냥 버려진다. 이렇게 네트워크에서 돌아다니는 데이터를 패킷(Packeet)이라고 부른다.
서로 다른 네트워크 공간에서 데이터를 전송하는 경우를 생각해보자. 같은 네트워크 공간에서는 스위치를 통해 데이터를 전송한다고 했는데, 스위치는 컴퓨터와 연결될 뿐만 아니라 라우터와도 연결된다. 즉, 다른 네트워크로 데이터를 송신하는 경우 컴퓨터->스위치->라우터 순서로 외부로 나가게 되는 것이다.
각 장치에서 패킷의 구조는 변하는데 설명을 덧붙이자면, 스위치에서는 MAC주소만 필요하게 되므로 전송할 데이터 위에 송신자 MAC주소와 수신자 MAC주소가 적힌 헤더(Header)라는 것이 벗겨졌다가 씌워진다. 라우터에서는 IP주소가 적힌 헤더(Header)라는 것이 씌워진다. 자꾸 벗겨지니 씌워지니 하니 표현이 이상한데, 헤더를 까서(?) 내용물을 확인하는 걸로 이해하면 된다. 내용물을 확인하는 것은 목적지가 어디인지 알아야 하기 때문이다. 이 헤더가 어떤 원리로 쌓이고, 어떤 원리로 하나씩 벗겨지는지는 다음에(?) 알아보자.
반대로, 외부에서 들어오는 데이터(수신받는 경우)는 라우터->스위치->컴퓨터 순서로 거쳐올 것이다. 라우터에서 IP주소가 적힌 헤더를 벗겨서 확인하면, MAC주소 헤더만 있는 패킷이 스위치로 전달되고, 스위치는 MAC주소 헤더를 벗겨본다. 자신의 메모리에서 목적지 MAC주소가 있는지 확인해보고 없으면 버려버려(?) 여하튼 주인이 있으면 그 컴퓨터한테 돌려준다.
정리를 하자면,
목적지 컴퓨터가 위치한 네트워크를 찾기 위해 IP주소를 사용하며, 해당 네트워크에서 실제 목적지 컴퓨터(End-point라고 표현한다.)를 찾기 위해 MAC 주소를 사용한다. 요즘 개인용 컴퓨터는 공유기를 사용하는데, 공유기는 라우터와 스위치의 역할을 모두 해낸다. (정말 똑똑한 녀석이다.) 자 여기서 IP주소를 MAC주소로 바꾸는 과정이 필요한데, 바로 라우터가 IP주소를 보고 MAC주소를 어떻게 알려주는지에 대한 것이다. 단순히 IP주소만 있는 헤더를 까본다고 해결될 문제가 아니다. 하여튼, IP주소를 MAC주소로 바꾸는 과정을 ARP(Address Resolution Protocol)라고 하며, 여기서 사용되는 통신규약을 ARP 프로토콜이라고 한다. ARP 프로토콜은 어떤 원리인가? 이것도 다음에(?) 알아보자.
추가로, 한 컴퓨터에서는 여러 개의 프로그램들을 실행한다. A프로그램이 다른 네트워크랑 통신하고, B프로그램도 통신한다고 가정하자. 데이터가 수신될 때 두 프로그램 중 누구에게 전달해야 하는가? 라는 문제가 발생한다. 이건 포트(Port)라는 걸로 해결한다. 즉, 통신할 때 응용 프로그램을 식별하기 위해 포트(Port) 번호가 사용된다. 까지의 범위인데, 이 중 예약된 포트번호가 있다. 흔히 아는 80포트(HTTP통신), 443포트(HTTPS통신) 등은 사용할 수 없다.
'Network > Summary' 카테고리의 다른 글
네트워크 장비에 대하여 (0) | 2018.07.02 |
---|