[13] MAC 주소의 구조
이번에는 MAC 주소에 대해서 알아보겠습니다.
랜 카드는 비트열 (0과 1)을 전기신호로 변환합니다.
이러한 랜 카드에는 MAC 주소라는 번호가 정해져 있습니다.
제조할 때 새겨지기 때문에 물리 주소 라고도 부르는데
전 세계에서 유일한 번호로 할당되어 있습니다.
MAC 주소는 48비트 숫자로 구성되어 있습니다.
그중 앞쪽 24비트는 랜카드를 만든 제조사 번호고
뒤쪽 24비트는 제조사가 랜 카드에 붙인 일련 번호입니다.
이제 MAC 주소를 사용한 통신에 대해 살펴보겠습니다.
OSI 모델이나 TCP/IP 모델을 떠올려 보면
각 계층에서 헤더를 붙입니다.
OSI 모델에서는 데이터 링크 계층에 해당하고
TCP/IP 모델에서는 네트워크 계층에 해당하는데
이 계층에서 이더넷 헤더와 트레일러를 붙입니다.
이더넷 헤더는 목적지의 MAC 주소, 출발지 MAC 주소, 유형 이렇게
총 14 바이트로 구성되어 있습니다.
이더넷 유형 (Ethernet type) 은
이더넷으로 전송되는 상위 계층 프로토콜의 종류를 나타냅니다.
여기에는 다음 표에 나와있는 프로토콜을 식별하는 16진수가 들어갑니다.
유형 번호를 기억할 필요는 없지만
유형에 프로토콜 종류를 식별하는 번호가 들어간다 정도는 기억해두면 좋습니다.
이더넷 헤더 외에
데이터 뒤에 추가하는 것을 트레일러라고 합니다.
이것은 FCS (Frame Check Sequence) 라고도 하는데,
데이터 전송 도중에 오류가 발생하는지 확인하는 용도로 사용합니다.
이처럼 이더넷 헤더와 트레일러가 추가된 데이터를
프레임 이라고 합니다.
네트워크를 통해 프레임이 전송되는 것입니다.
허브에 연결된 컴퓨터의 맥 주소는 위 그림과 같습니다.
컴퓨터 1에서 컴퓨터 3으로 데이터를 전송해보겠습니다.
위 그림과 같이 컴퓨터 1은
이더넷 헤더에 데이터의 목적지인
컴퓨터 3의 MAC 주소 (목적지 MAC 주소)와
자신의 MAC 주소 (출발지 MAC 주소) 정보를 넣고 데이터를 전송합니다.
여기에서 컴퓨터 1 에서 캡슐화가 일어납니다.
데이터 링크 계층에서 데이터에 이더넷 헤더와 트레일러를 추가하여 프레임을 만들고,
물리 계층에서 이 프레임 비트열을 전기신호로 변환하여 네트워크를 통해 전송합니다.
허브는 위 그림과 같이
컴퓨터 1이 보낸 데이터를 1 포트로 수신하고
2~5의 모든 포트로 전송합니다.
그러면 데이터는 컴퓨터 2~5에 전송되지만,
컴퓨터 2, 4, 5는 목적지 MAC 주소가
자신의 MAC 주소와 다르기 때문에
데이터를 파기합니다.
반면 컴퓨터 3은 자신의 MAC 주소가
컴퓨터 1이 보낸 데이터의 목적지 MAC 주소와 같으므로
데이터를 수신합니다.
여기에서는 역캡슐화가 일어납니다.
컴퓨터 3에서는
물리 계층에서 전기 신호로 전송된 데이터를 비트열로 변환하고
데이터 링크 계층에서 이더넷 헤더와 트레일러를 분리합니다.
컴퓨터 3은 역캡슐화를 한 다음에 데이터를 수신합니다.
지금은 컴퓨터 1에서만 데이터를 전송했지만
컴퓨터 1과 2가 동시에 컴퓨터 3에 데이터를 전송하는 경우가 있습니다.
그런 경우에는 충돌을 방지하기 위해 CSMA/CD 방식이 사용됩니다.
여기에서는 충돌이 감지되면 컴퓨터 2는 잠시 대기하고 데이터를 다시 전송합니다.