본문 바로가기

컴퓨터공학 기초/네트워크

[네트워크] MAC 주소의 구조

랜 카드는 비트열을 전기신호로 변환한다. 이런 랜카드에는 MAC주소라는 번호가 정해져있다. 

제조할 때 새겨지기 때문에 물리 주소라고도 불리는데, 전 세계에서 유일한 번호로 할당되어 있다. 

이 맥주소는 허브가 데이터를 송신할 때, 특정한 컴퓨터에만 데이터를 전송할 수 있게 도와주는 역할을 한다. 그럼 이 일이 어떻게 일어나는지 알아보자. 

 

MAC주소를 사용한 통신 : 

OSI모델이나 TCP/IP모델에서는 헤더를 붙인다는 것을 앞서 설명한 적이 있다. 

OSI의 경우엔 데이터 링크 계층, TCP/IP의 경우에는 네트워크 계층에서 이더넷 헤더와 트레일러를 붙인다. 

이더넷 헤더 목적지의 MAC주소(6바이트) , 출발지MAC주소(6바이트) , 유형(2바이트) 이렇게 총 14바이트로 구성되어 있다. 

 

* 여기서 말하는 유형이란 이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타낸다.

또 위에서 설명했듯이, 링크 계층과 네트워크 계층에서는 이더넷 헤더 외에도 트레일러가 붙는다. 이것은 FCS라고도 하는데, 데이터 전송 도중에 오류가 발생하는지 확인하는 용도로 사용한다. 

이렇게 헤더와 트레일러가 추가된 데이터를 프레임이라고 부른다. 결론적으로 네트워크를 통해 이 프레임이 전송된다. 

 

MAC주소를 활용하는 구체적인 방식 : 

여러대의 컴퓨터끼리 서로 데이터를 전송하려고 할 때, 본인 컴퓨터의 MAC주소와 목적지 컴퓨터의 MAC주소를 넣는다. 그런 후에 데이터를 전송한다. 추가적으로 보내는 컴퓨터에서는 이 데이터에 대해서 캡슐화가 일어난다.

순서를 생각해보자면, 데이터 링크 계층에서 프레임을 만들고 -> 물리 계층에서 이 프레임을 전기 신호로 변환하여 네트워크를 통해 전송한다. 

 

허브에 대해서 앞서 설명한 적이 있듯이, 허브는 모든 컴퓨터에 데이터를 보낸다. 이렇게 보내는 방식이 비효율적이기 때문에 더미허브라고 부른다고 글을 남긴적이 있다. 이런 상황에서 MAC주소는 도움이 된다. 

데이터를 보낼 때, 보내는 컴퓨터의 주소와 받을 컴퓨터의 주소를 입력했다. 허브는 우선 모든 컴퓨터에 데이터를 보내지만, 해당 컴퓨터들을 데이터를 받을 때, 입력된 '받을 컴퓨터의 주소'를 확인한다. 확인한 후, 일치하지 않는 경우에는 이 데이터를 파기한다. 

 

그리고 MAC주소가 일치하는 경우에는, 그때서부터 데이터를 역캡슐화하기 시작한다. 

전기 신호로 전송된 데이터를 비열로 변환 -> 데이터 링크 계층엣 이더넷 헤더와 트레일러를 분리. 

 

여러대의 컴퓨터가 동시적으로 하나의 컴퓨터에 데이터를 보내면? : 

추가적으로 생각해볼 수 있는 부분은 동시에 두 컴퓨터가 하나의 컴퓨터에 데이터를 보낼때는 어떻게 하는가이다. 

이런 경우에는 CSMA/CD방식이 사용된다. 충돌이 감지되면 컴퓨터 한대는 잠시 대기를 하고 있다가, 데이터를 다시 전송한다.